/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using ForwardWindow11Stride4 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 11, 4>;
TYPED_TEST_SUITE(ForwardWindow11Stride4, GTestTypePairs);
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236621., 377531.,  403095.,  258769., 510587., 798721., 828245., 522599.,
      801647., 1241581., 1271105., 795179., 372057., 565103., 577115., 353437.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {798721., 828245., 1241581., 1271105.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      470841.,  473242.,  751135.,  755062.,  801955.,  806190.,  514745.,
      517538.,  1015091., 1021174., 1587641., 1597442., 1646205., 1656490.,
      1038499., 1045198., 1592591., 1603294., 2466101., 2483162., 2524665.,
      2542210., 1579039., 1590358., 735833.,  744114.,  1117039., 1130206.,
      1140755., 1154230., 698201.,  706874.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1587641., 1597442., 1646205.,
                                         1656490., 2466101., 2483162.,
                                         2524665., 2542210.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      939281.,  941682.,  944083.,  946484.,  1498343., 1502270., 1506197.,
      1510124., 1599675., 1603910., 1608145., 1612380., 1026697., 1029490.,
      1032283., 1035076., 2024099., 2030182., 2036265., 2042348., 3165481.,
      3175282., 3185083., 3194884., 3282125., 3292410., 3302695., 3312980.,
      2070299., 2076998., 2083697., 2090396., 3174479., 3185182., 3195885.,
      3206588., 4915141., 4932202., 4949263., 4966324., 5031785., 5049330.,
      5066875., 5084420., 3146759., 3158078., 3169397., 3180716., 1463385.,
      1471666., 1479947., 1488228., 2220911., 2234078., 2247245., 2260412.,
      2268035., 2281510., 2294985., 2308460., 1387729., 1396402., 1405075.,
      1413748.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481., 3175282., 3185083., 3194884., 3282125., 3292410.,
      3302695., 3312980., 4915141., 4932202., 4949263., 4966324.,
      5031785., 5049330., 5066875., 5084420.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933401.,  946484.,  1489565., 1510124., 1591205., 1612380., 1021601.,
      1035076., 2020557., 2042348., 3160641., 3194884., 3277769., 3312980.,
      2067989., 2090396., 3175557., 3206588., 4917561., 4966324., 5034689.,
      5084420., 3149069., 3180716., 1467697., 1488228., 2228149., 2260412.,
      2275581., 2308460., 1392825., 1413748.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3160641., 3194884., 3277769.,
                                         3312980., 4917561., 4966324.,
                                         5034689., 5084420.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1862049.,  1866802.,  1888166., 1892968., 2971353., 2979130.,  3012394.,
      3020248.,  3174017.,  3182410., 3216290., 3224760., 2037665.,  2043202.,
      2064566.,  2070152.,  4029025., 4041114., 4072530., 4084696.,  6301801.,
      6321282.,  6370166.,  6389768., 6535089., 6555538., 6605390.,  6625960.,
      4122657.,  4135978.,  4167394., 4180792., 6329785., 6351114.,  6391770.,
      6413176.,  9801121.,  9835122., 9898526., 9932648., 10034409., 10069378.,
      10133750., 10168840., 6275577., 6298138., 6338794., 6361432.,  2918881.,
      2935394.,  2959894.,  2976456., 4430041., 4456298., 4494490.,  4520824.,
      4524289.,  4551162.,  4589970., 4616920., 2768353., 2785650.,  2810150.,
      2827496.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166.,  6389768., 6535089., 6555538.,
      6605390.,  6625960.,  9801121.,  9835122., 9898526., 9932648.,
      10034409., 10069378., 10133750., 10168840.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1400497., 1405250., 1410003., 1414756., 1433738., 1438540., 1443342.,
      1448144., 2194769., 2202546., 2210323., 2218100., 2247590., 2255444.,
      2263298., 2271152., 2366009., 2374402., 2382795., 2391188., 2421294.,
      2429764., 2438234., 2446704., 1507233., 1512770., 1518307., 1523844.,
      1543066., 1548652., 1554238., 1559824., 3453833., 3465922., 3478011.,
      3490100., 3521822., 3533988., 3546154., 3558320., 5341881., 5361362.,
      5380843., 5400324., 5449306., 5468908., 5488510., 5508112., 5574017.,
      5594466., 5614915., 5635364., 5685314., 5705884., 5726454., 5747024.,
      3519033., 3532354., 3545675., 3558996., 3590510., 3603908., 3617306.,
      3630704., 5772833., 5794162., 5815491., 5836820., 5877782., 5899188.,
      5920594., 5942000., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704., 5665233., 5687794., 5710355.,
      5732916., 5773670., 5796308., 5818946., 5841584., 3879233., 3895746.,
      3912259., 3928772., 3956602., 3973164., 3989726., 4006288., 5986593.,
      6012850., 6039107., 6065364., 6108758., 6135092., 6161426., 6187760.,
      6121225., 6148098., 6174971., 6201844., 6245854., 6272804., 6299754.,
      6326704., 3931697., 3948994., 3966291., 3983588., 4011658., 4029004.,
      4046350., 4063696.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881., 5361362., 5380843., 5400324., 5449306., 5468908., 5488510.,
      5508112., 5574017., 5594466., 5614915., 5635364., 5685314., 5705884.,
      5726454., 5747024., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3707585., 3733604., 3759721., 3785936., 5917373., 5958260., 5999301.,
      6040496., 6322701., 6364820., 6407093., 6449520., 4059601., 4086404.,
      4113305., 4140304., 4834781., 4870964., 4907301., 4943792., 7032041.,
      7087364., 7142929., 7198736., 6730617., 6785828., 6841281., 6896976.,
      3829805., 3863636., 3897621., 3931760., 4920461., 4960788., 5001269.,
      5041904., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 4479965., 4517940., 4556069., 4594352., 1894641.,
      1914052., 1933561., 1953168., 2877869., 2906836., 2935957., 2965232.,
      3019261., 3047412., 3075717., 3104176., 1891841., 1908452., 1925161.,
      1941968.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828.,
      6841281., 6896976., 7384921., 7446756., 7508833., 7571152.,
      7443945., 7505668., 7567633., 7629840.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2786961., 2796418., 2820006., 2829512., 2853247., 2862802., 2886684.,
      2896288., 4368133., 4383610., 4420646., 4436200., 4473467., 4489098.,
      4526596., 4542304., 4710613., 4727322., 4765590., 4782376., 4820875.,
      4837738., 4876468., 4893408., 3000977., 3012002., 3036614., 3047688.,
      3072447., 3083570., 3108476., 3119648., 4157333., 4174266., 4210678.,
      4227688., 4264331., 4281418., 4318292., 4335456., 6136345., 6162386.,
      6217686., 6243848., 6299511., 6325794., 6381820., 6408224., 6115241.,
      6141170., 6196358., 6222408., 6277959., 6304130., 6360044., 6386336.,
      3740821., 3756634., 3790486., 3806376., 3840459., 3856426., 3890740.,
      3906784., 5807301., 5828378., 5868934., 5890088., 5930875., 5952106.,
      5993124., 6014432., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 4406213., 4426170., 4464166.,
      4484200., 4522427., 4542538., 4580996., 4601184., 2257681., 2269154.,
      2291846., 2303368., 2326207., 2337778., 2360764., 2372384., 3458693.,
      3475802., 3509894., 3527080., 3561403., 3578666., 3613220., 3630560.,
      3635797., 3652090., 3685366., 3701736., 3735243., 3751690., 3785428.,
      3801952., 2437393., 2446850., 2466982., 2476488., 2496767., 2506322.,
      2526748., 2536352.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2481713., 2491170., 2500627., 2510084., 2532906., 2542412., 2551918.,
      2561424., 2584491., 2594046., 2603601., 2613156., 2636468., 2646072.,
      2655676., 2665280., 3868565., 3884042., 3899519., 3914996., 3950474.,
      3966028., 3981582., 3997136., 4032999., 4048630., 4064261., 4079892.,
      4116140., 4131848., 4147556., 4163264., 4183653., 4200362., 4217071.,
      4233780., 4270490., 4287276., 4304062., 4320848., 4357943., 4374806.,
      4391669., 4408532., 4446012., 4462952., 4479892., 4496832., 2765329.,
      2776354., 2787379., 2798404., 2822218., 2833292., 2844366., 2855440.,
      2879499., 2890622., 2901745., 2912868., 2937172., 2948344., 2959516.,
      2970688., 4555525., 4572458., 4589391., 4606324., 4643194., 4660204.,
      4677214., 4694224., 4731479., 4748566., 4765653., 4782740., 4820380.,
      4837544., 4854708., 4871872., 7203961., 7230002., 7256043., 7282084.,
      7337338., 7363500., 7389662., 7415824., 7471683., 7497966., 7524249.,
      7550532., 7606996., 7633400., 7659804., 7686208., 6694921., 6720850.,
      6746779., 6772708., 6827850., 6853900., 6879950., 6906000., 6961747.,
      6987918., 7014089., 7040260., 7096612., 7122904., 7149196., 7175488.,
      3663205., 3679018., 3694831., 3710644., 3744538., 3760428., 3776318.,
      3792208., 3826487., 3842454., 3858421., 3874388., 3909052., 3925096.,
      3941140., 3957184., 5401909., 5422986., 5444063., 5465140., 5506154.,
      5527308., 5548462., 5569616., 5611015., 5632246., 5653477., 5674708.,
      5716492., 5737800., 5759108., 5780416., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 4359061., 4379018., 4398975., 4418932., 4456970., 4477004.,
      4497038., 4517072., 4555495., 4575606., 4595717., 4615828., 4654636.,
      4674824., 4695012., 4715200., 2367825., 2379298., 2390771., 2402244.,
      2425866., 2437388., 2448910., 2460432., 2484299., 2495870., 2507441.,
      2519012., 2543124., 2554744., 2566364., 2577984., 3279413., 3296522.,
      3313631., 3330740., 3365354., 3382540., 3399726., 3416912., 3451911.,
      3469174., 3486437., 3503700., 3539084., 3556424., 3573764., 3591104.,
      3372293., 3388586., 3404879., 3421172., 3454970., 3471340., 3487710.,
      3504080., 3538263., 3554710., 3571157., 3587604., 3622172., 3638696.,
      3655220., 3671744., 2145073., 2154530., 2163987., 2173444., 2193450.,
      2202956., 2212462., 2221968., 2242219., 2251774., 2261329., 2270884.,
      2291380., 2300984., 2310588., 2320192.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832.};
  const std::array<int, 4> in_shape = {{1, 15, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      288148., 406483.,  432047.,  276801., 620092., 856317., 885841., 558327.,
      972092., 1328701., 1358225., 849079., 449092., 604527., 616539., 377349.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {848936., 878460., 1321320., 1350844.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      573356.,  576296.,  808731.,  812966.,  859551.,  864094.,  550613.,
      553602.,  1232748., 1240184., 1702107., 1712634., 1760671., 1771682.,
      1109493., 1116654., 1931116., 1944184., 2639131., 2657402., 2697695.,
      2716450., 1686069., 1698158., 888076.,  898184.,  1194963., 1209054.,
      1218679., 1233078., 745437.,  754698.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1687466., 1697872., 1746030.,
                                         1756920., 2624490., 2642640.,
                                         2683054., 2701688.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1143772., 1146712., 1149652., 1152592., 1613227., 1617462., 1621697.,
      1625932., 1714559., 1719102., 1723645., 1728188., 1098237., 1101226.,
      1104215., 1107204., 2458060., 2465496., 2472932., 2480368., 3393687.,
      3404214., 3414741., 3425268., 3510331., 3521342., 3532353., 3543364.,
      2211825., 2218986., 2226147., 2233308., 3849164., 3862232., 3875300.,
      3888368., 5259991., 5278262., 5296533., 5314804., 5376635., 5395390.,
      5414145., 5432900., 3360049., 3372138., 3384227., 3396316., 1766044.,
      1776152., 1786260., 1796368., 2375835., 2389926., 2404017., 2418108.,
      2422959., 2437358., 2451757., 2466156., 1481613., 1490874., 1500135.,
      1509396.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526., 3374932., 3385338., 3395744., 3481170., 3492060.,
      3502950., 3513840., 5230830., 5248980., 5267130., 5285280.,
      5347474., 5366108., 5384742., 5403376.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1137304., 1152592., 1604757., 1625932., 1706397., 1728188., 1093337.,
      1107204., 2454584., 2480368., 3389573., 3425268., 3506701., 3543364.,
      2209977., 2233308., 3851320., 3888368., 5263621., 5314804., 5380749.,
      5432900., 3363129., 3396316., 1771672., 1796368., 2383997., 2418108.,
      2431429., 2466156., 1487297., 1509396.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3360291., 3395744., 3477419.,
                                         3513840., 5234339., 5285280.,
                                         5351467., 5403376.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2268784.,  2274608.,  2299304.,  2305184.,  3201121.,  3209514.,
      3243394.,  3251864.,  3403785.,  3412794.,  3447290.,  3456376.,
      2180745.,  2186674.,  2208430.,  2214408.,  4894384.,  4909168.,
      4945864.,  4960736.,  6758213.,  6779146.,  6829482.,  6850536.,
      6991501.,  7013402.,  7064706.,  7086728.,  4405709.,  4419954.,
      4452294.,  4466616.,  7676592.,  7702640.,  7750600.,  7776736.,
      10490821., 10527242., 10593066., 10629608., 10724109., 10761498.,
      10828290., 10865800., 6702157.,  6726258.,  6768454.,  6792632.,
      3523184.,  3543344.,  3572520.,  3592736.,  4739889.,  4767994.,
      4808034.,  4836216.,  4834137.,  4862858.,  4903514.,  4932312.,
      2956121.,  2974594.,  3000270.,  3018792.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1699360., 1705184., 1711008., 1716832., 1738840., 1744720., 1750600.,
      1756480., 2367993., 2376386., 2384779., 2393172., 2423278., 2431748.,
      2440218., 2448688., 2539233., 2548242., 2557251., 2566260., 2596982.,
      2606068., 2615154., 2624240., 1613801., 1619730., 1625659., 1631588.,
      1651202., 1657180., 1663158., 1669136., 4189088., 4203872., 4218656.,
      4233440., 4270456., 4285328., 4300200., 4315072., 5734085., 5755018.,
      5775951., 5796884., 5847318., 5868372., 5889426., 5910480., 5966221.,
      5988122., 6010023., 6031924., 6083326., 6105348., 6127370., 6149392.,
      3761653., 3775898., 3790143., 3804388., 3836826., 3851148., 3865470.,
      3879792., 6989728., 7015776., 7041824., 7067872., 7116152., 7142288.,
      7168424., 7194560., 9448261., 9484682., 9521103., 9557524., 9623446.,
      9659988., 9696530., 9733072., 9680397., 9717786., 9755175., 9792564.,
      9859454., 9896964., 9934474., 9971984., 6050933., 6075034., 6099135.,
      6123236., 6165530., 6189708., 6213886., 6238064., 4718112., 4738272.,
      4758432., 4778592., 4811608., 4831824., 4852040., 4872256., 6406809.,
      6434914., 6463019., 6491124., 6536366., 6564548., 6592730., 6620912.,
      6541441., 6570162., 6598883., 6627604., 6673462., 6702260., 6731058.,
      6759856., 4198537., 4217010., 4235483., 4253956., 4283202., 4301724.,
      4320246., 4338768.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4518808., 4549216., 4579736., 4610368., 6376909., 6419028., 6461301.,
      6503728., 6782237., 6825588., 6869093., 6912752., 4345761., 4373348.,
      4401033., 4428816., 4569208., 4608224., 4647416., 4686784., 6441633.,
      6495764., 6550137., 6604752., 6908209., 6964276., 7020585., 7077136.,
      4395909., 4431588., 4467421., 4503408., 5726328., 5771488., 5816824.,
      5862336., 7981985., 8044564., 8107385., 8170448., 8448561., 8513076.,
      8577833., 8642832., 5333125., 5374180., 5415389., 5456752., 2478616.,
      2499168., 2519832., 2540608., 3436125., 3464692., 3493413., 3522288.,
      3624621., 3654420., 3684373., 3714480., 2267377., 2286340., 2305401.,
      2324560.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148.,
      6902973., 6959040., 7865341., 7927436., 7989773., 8052352.,
      8331917., 8395948., 8460221., 8524736.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3382760., 3394352., 3422016., 3433664., 3461496., 3473200., 3501200.,
      3512960., 4714581., 4731290., 4769558., 4786344., 4824843., 4841706.,
      4880436., 4897376., 5057061., 5075002., 5114502., 5132520., 5172251.,
      5190346., 5230308., 5248480., 3214113., 3225922., 3251318., 3263176.,
      3288719., 3300626., 3326316., 3338272., 4264392., 4281584., 4320832.,
      4338112., 4377624., 4394992., 4434768., 4452224., 6015537., 6040386.,
      6094494., 6119464., 6173935., 6199026., 6253860., 6279072., 6479809.,
      6506594., 6562638., 6589544., 6645951., 6672978., 6729748., 6756896.,
      4226061., 4243722., 4279422., 4297160., 4333091., 4350906., 4387068.,
      4404960., 5786056., 5809392., 5854784., 5878208., 5923864., 5947376.,
      5993296., 6016896., 7908145., 7941442., 8003998., 8037416., 8100335.,
      8133874., 8197156., 8230816., 8372417., 8407650., 8472142., 8507496.,
      8572351., 8607826., 8673044., 8708640., 5177613., 5200650., 5241726.,
      5264840., 5306147., 5329338., 5370876., 5394144., 2956008., 2967600.,
      2991936., 3003584., 3028088., 3039792., 3064464., 3076224., 4180341.,
      4197050., 4230742., 4247528., 4281451., 4298314., 4332468., 4349408.,
      4449605., 4467546., 4502470., 4520488., 4555643., 4573738., 4609124.,
      4627296., 2971073., 2982882., 3005366., 3017224., 3039855., 3051762.,
      3074540., 3086496.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3024008., 3035600., 3047192., 3058784., 3085568., 3097216., 3108864.,
      3120512., 3147576., 3159280., 3170984., 3182688., 3210032., 3221792.,
      3233552., 3245312., 4177253., 4193962., 4210671., 4227380., 4264090.,
      4280876., 4297662., 4314448., 4351543., 4368406., 4385269., 4402132.,
      4439612., 4456552., 4473492., 4490432., 4492341., 4510282., 4528223.,
      4546164., 4584106., 4602124., 4620142., 4638160., 4676487., 4694582.,
      4712677., 4730772., 4769484., 4787656., 4805828., 4824000., 2961441.,
      2973250., 2985059., 2996868., 3021466., 3033324., 3045182., 3057040.,
      3081883., 3093790., 3105697., 3117604., 3142692., 3154648., 3166604.,
      3178560., 4508776., 4525968., 4543160., 4560352., 4600064., 4617344.,
      4634624., 4651904., 4692056., 4709424., 4726792., 4744160., 4784752.,
      4802208., 4819664., 4837120., 6115665., 6140514., 6165363., 6190212.,
      6244274., 6269244., 6294214., 6319184., 6373851., 6398942., 6424033.,
      6449124., 6504396., 6529608., 6554820., 6580032., 6575329., 6602114.,
      6628899., 6655684., 6711682., 6738588., 6765494., 6792400., 6849003.,
      6876030., 6903057., 6930084., 6987292., 7014440., 7041588., 7068736.,
      4115741., 4133402., 4151063., 4168724., 4204466., 4222204., 4239942.,
      4257680., 4293807., 4311622., 4329437., 4347252., 4383764., 4401656.,
      4419548., 4437440., 5710952., 5734288., 5757624., 5780960., 5826816.,
      5850240., 5873664., 5897088., 5943384., 5966896., 5990408., 6013920.,
      6060656., 6084256., 6107856., 6131456., 7664209., 7697506., 7730803.,
      7764100., 7826610., 7860028., 7893446., 7926864., 7989979., 8023518.,
      8057057., 8090596., 8154316., 8187976., 8221636., 8255296., 8123873.,
      8159106., 8194339., 8229572., 8294018., 8329372., 8364726., 8400080.,
      8465131., 8500606., 8536081., 8571556., 8637212., 8672808., 8708404.,
      8744000., 5095965., 5119002., 5142039., 5165076., 5206194., 5229308.,
      5252422., 5275536., 5317039., 5340230., 5363421., 5386612., 5428500.,
      5451768., 5475036., 5498304., 2845320., 2856912., 2868504., 2880096.,
      2905344., 2916992., 2928640., 2940288., 2965816., 2977520., 2989224.,
      3000928., 3026736., 3038496., 3050256., 3062016., 3879333., 3896042.,
      3912751., 3929460., 3963674., 3980460., 3997246., 4014032., 4048631.,
      4065494., 4082357., 4099220., 4134204., 4151144., 4168084., 4185024.,
      4154485., 4172426., 4190367., 4208308., 4243754., 4261772., 4279790.,
      4297808., 4333639., 4351734., 4369829., 4387924., 4424140., 4442312.,
      4460484., 4478656., 2650977., 2662786., 2674595., 2686404., 2708762.,
      2720620., 2732478., 2744336., 2766939., 2778846., 2790753., 2802660.,
      2825508., 2837464., 2849420., 2861376.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824.};
  const std::array<int, 4> in_shape = {{1, 15, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280574., 445214., 470778., 445830., 268366.,  608762.,  949366.,
      978890., 907500., 538208., 958034., 1480798., 1510322., 1386660.,
      816200., 444822., 674366., 686378., 626010.,  360682.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {949366., 978890., 1480798., 1510322.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      558306.,  561148.,  885808.,  890428.,  936628.,  941556.,  886935.,
      891660.,  533813.,  536732.,  1210286., 1217524., 1887116., 1898732.,
      1945680., 1957780., 1803615., 1815000., 1069453., 1076416., 1903286.,
      1916068., 2941268., 2961596., 2999832., 3020644., 2754015., 2773320.,
      1620685., 1632400., 879746.,  889644.,  1333024., 1348732., 1356740.,
      1372756., 1237215., 1252020., 712397.,  721364.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1887116., 1898732., 1945680.,
                                         1957780., 2941268., 2961596.,
                                         2999832., 3020644.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1113770., 1116612., 1119454., 1122296., 1766996., 1771616., 1776236.,
      1780856., 1868328., 1873256., 1878184., 1883112., 1769145., 1773870.,
      1778595., 1783320., 1064707., 1067626., 1070545., 1073464., 2413334.,
      2420572., 2427810., 2435048., 3762616., 3774232., 3785848., 3797464.,
      3879260., 3891360., 3903460., 3915560., 3595845., 3607230., 3618615.,
      3630000., 2131943., 2138906., 2145869., 2152832., 3793790., 3806572.,
      3819354., 3832136., 5862208., 5882536., 5902864., 5923192., 5978852.,
      5999664., 6020476., 6041288., 5488725., 5508030., 5527335., 5546640.,
      3229655., 3241370., 3253085., 3264800., 1749594., 1759492., 1769390.,
      1779288., 2650340., 2666048., 2681756., 2697464., 2697464., 2713480.,
      2729496., 2745512., 2459625., 2474430., 2489235., 2504040., 1415827.,
      1424794., 1433761., 1442728.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616., 3774232., 3785848., 3797464., 3879260., 3891360.,
      3903460., 3915560., 5862208., 5882536., 5902864., 5923192.,
      5978852., 5999664., 6020476., 6041288.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1108331., 1122296., 1758911., 1780856., 1860551., 1883112., 1762390.,
      1783320., 1060906., 1073464., 2410947., 2435048., 3759591., 3797464.,
      3876719., 3915560., 3594030., 3630000., 2131250., 2152832., 3796947.,
      3832136., 5867895., 5923192., 5985023., 6041288., 5494830., 5546640.,
      3233714., 3264800., 1755523., 1779288., 2660119., 2697464., 2707551.,
      2745512., 2469110., 2504040., 1421770., 1442728.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3759591., 3797464., 3876719.,
                                         3915560., 5867895., 5923192.,
                                         5985023., 6041288.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2211027.,  2216662.,  2238908.,  2244592.,  3508659.,  3517822.,
      3552472.,  3561712.,  3711323.,  3721102.,  3756368.,  3766224.,
      3515400.,  3524780.,  3557190.,  3566640.,  2116016.,  2121812.,
      2141090.,  2146928.,  4807495.,  4821894.,  4855620.,  4870096.,
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  7165400.,  7188060.,  7237230.,  7260000.,
      4248640.,  4262500.,  4291738.,  4305664.,  7568407.,  7593894.,
      7638708.,  7664272.,  11695255., 11735790., 11805728., 11846384.,
      11928543., 11970046., 12040952., 12082576., 10951160., 10989660.,
      11054670., 11093280., 6444064.,  6467428.,  6506170.,  6529600.,
      3491299.,  3511046.,  3538780.,  3558576.,  5288899.,  5320238.,
      5363512.,  5394928.,  5383147.,  5415102.,  5458992.,  5491024.,
      4908680.,  4938220.,  4978470.,  5008080.,  2825648.,  2843540.,
      2867522.,  2885456.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  11695255., 11735790., 11805728., 11846384.,
      11928543., 11970046., 12040952., 12082576.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1661347., 1666982., 1672617., 1678252., 1698116., 1703800., 1709484.,
      1715168., 2586011., 2595174., 2604337., 2613500., 2644376., 2653616.,
      2662856., 2672096., 2757251., 2767030., 2776809., 2786588., 2818080.,
      2827936., 2837792., 2847648., 2633068., 2642448., 2651828., 2661208.,
      2690466., 2699916., 2709366., 2718816., 1553596., 1559392., 1565188.,
      1570984., 1588342., 1594180., 1600018., 1605856., 4117583., 4131982.,
      4146381., 4160780., 4194812., 4209288., 4223764., 4238240., 6344391.,
      6367502., 6390613., 6413724., 6466336., 6489568., 6512800., 6536032.,
      6576527., 6600606., 6624685., 6648764., 6702344., 6726544., 6750744.,
      6774944., 6159660., 6182320., 6204980., 6227640., 6277098., 6299868.,
      6322638., 6345408., 3598940., 3612800., 3626660., 3640520., 3669710.,
      3683636., 3697562., 3711488., 6223007., 6246958., 6270909., 6294860.,
      6338444., 6362472., 6386500., 6410528., 8999639., 9036590., 9073541.,
      9110492., 9176944., 9214016., 9251088., 9288160., 8451487., 8487358.,
      8523229., 8559100., 8624472., 8660464., 8696456., 8732448., 7881612.,
      7914992., 7948372., 7981752., 8041930., 8075420., 8108910., 8142400.,
      4573436., 4593728., 4614020., 4634312., 4669934., 4690292., 4710650.,
      4731008., 4503203., 4521414., 4539625., 4557836., 4587364., 4605624.,
      4623884., 4642144., 6884635., 6912390., 6940145., 6967900., 7012792.,
      7040624., 7068456., 7096288., 6959875., 6986198., 7012521., 7038844.,
      7082304., 7108704., 7135104., 7161504., 6545324., 6569744., 6594164.,
      6618584., 6658722., 6683212., 6707702., 6732192., 3879292., 3894112.,
      3908932., 3923752., 3947638., 3962500., 3977362., 3992224.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391., 6367502., 6390613., 6413724., 6466336., 6489568., 6512800.,
      6536032., 6576527., 6600606., 6624685., 6648764., 6702344., 6726544.,
      6750744., 6774944., 8999639., 9036590., 9073541., 9110492., 9176944.,
      9214016., 9251088., 9288160., 8451487., 8487358., 8523229., 8559100.,
      8624472., 8660464., 8696456., 8732448.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4405541., 4433324., 4461205., 4489184., 6991985., 7035644., 7079457.,
      7123424., 7397313., 7442204., 7487249., 7532448., 7007910., 7049560.,
      7091350., 7133280., 4218634., 4243624., 4268698., 4293856., 4153257.,
      4187916., 4222729., 4257696., 6382885., 6436764., 6490885., 6545248.,
      6530997., 6585788., 6640821., 6696096., 6255870., 6307000., 6358350.,
      6409920., 3751154., 3781832., 3812642., 3843584., 5507913., 5548876.,
      5589993., 5631264., 7986501., 8049116., 8111973., 8175072., 7399381.,
      7460860., 7522581., 7584544., 7033150., 7090360., 7147790., 7205440.,
      4188338., 4222664., 4257122., 4291712., 2473205., 2493964., 2514821.,
      2535776., 3484033., 3515484., 3547089., 3578848., 3117521., 3148156.,
      3178945., 3209888., 2945990., 2974680., 3003510., 3032480., 1725418.,
      1742632., 1759930., 1777312.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788.,
      6640821., 6696096., 7986501., 8049116., 8111973., 8175072.,
      7399381., 7460860., 7522581., 7584544.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3308661., 3319882., 3345234., 3356504., 3382003., 3393322., 3418968.,
      3430336., 5150617., 5168866., 5208674., 5227000., 5267039., 5285442.,
      5325712., 5344192., 5493097., 5512578., 5553618., 5573176., 5614447.,
      5634082., 5675584., 5695296., 5246538., 5265228., 5303656., 5322416.,
      5361054., 5379884., 5418732., 5437632., 3095798., 3107348., 3130376.,
      3141968., 3165122., 3176756., 3200036., 3211712., 4159777., 4175186.,
      4210074., 4225560., 4260679., 4276242., 4311592., 4327232., 6531125.,
      6555722., 6609578., 6634296., 6688515., 6713354., 6767936., 6792896.,
      6883781., 6909290., 6964058., 6989688., 7044819., 7070570., 7126064.,
      7151936., 6701922., 6726652., 6777960., 6802800., 6854438., 6879388.,
      6931356., 6956416., 4024798., 4040164., 4070728., 4086160., 4116922.,
      4132420., 4163380., 4178944., 5076929., 5098642., 5139834., 5161624.,
      5203047., 5224914., 5266568., 5288512., 7091797., 7125130., 7187722.,
      7221176., 7284131., 7317706., 7381024., 7414720., 6500325., 6532522.,
      6593978., 6626296., 6688115., 6720554., 6782736., 6815296., 6235170.,
      6265980., 6323368., 6354288., 6412006., 6443036., 6501084., 6532224.,
      3617566., 3636580., 3670792., 3689872., 3724282., 3743428., 3778036.,
      3797248., 3438037., 3450858., 3474898., 3487768., 3511955., 3524874.,
      3549208., 3562176., 5397625., 5417218., 5453794., 5473464., 5510271.,
      5530018., 5567056., 5586880., 5607497., 5626274., 5662034., 5680888.,
      5716879., 5735810., 5772032., 5791040., 5442314., 5460364., 5493992.,
      5512112., 5545950., 5564140., 5598188., 5616448., 3307574., 3318740.,
      3338888., 3350096., 3370370., 3381620., 3402020., 3413312.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x15x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945813., 2957034., 2968255., 2979476., 3004062., 3015332., 3026602.,
      3037872., 3062703., 3074022., 3085341., 3096660., 3121736., 3133104.,
      3144472., 3155840., 4558313., 4576562., 4594811., 4613060., 4651310.,
      4669636., 4687962., 4706288., 4744923., 4763326., 4781729., 4800132.,
      4839152., 4857632., 4876112., 4894592., 4873401., 4892882., 4912363.,
      4931844., 4971326., 4990884., 5010442., 5030000., 5069867., 5089502.,
      5109137., 5128772., 5169024., 5188736., 5208448., 5228160., 4714898.,
      4733588., 4752278., 4770968., 4808072., 4826832., 4845592., 4864352.,
      4901806., 4920636., 4939466., 4958296., 4996100., 5015000., 5033900.,
      5052800., 2800846., 2812396., 2823946., 2835496., 2857672., 2869264.,
      2880856., 2892448., 2914834., 2926468., 2938102., 2949736., 2972332.,
      2984008., 2995684., 3007360., 3916817., 3932226., 3947635., 3963044.,
      3998390., 4013876., 4029362., 4044848., 4080579., 4096142., 4111705.,
      4127268., 4163384., 4179024., 4194664., 4210304., 5801557., 5826154.,
      5850751., 5875348., 5929158., 5953876., 5978594., 6003312., 6057727.,
      6082566., 6107405., 6132244., 6187264., 6212224., 6237184., 6262144.,
      6039013., 6064522., 6090031., 6115540., 6170262., 6195892., 6221522.,
      6247152., 6302479., 6328230., 6353981., 6379732., 6435664., 6461536.,
      6487408., 6513280., 5974058., 5998788., 6023518., 6048248., 6099912.,
      6124752., 6149592., 6174432., 6226646., 6251596., 6276546., 6301496.,
      6354260., 6379320., 6404380., 6429440., 3417014., 3432380., 3447746.,
      3463112., 3493448., 3508880., 3524312., 3539744., 3570410., 3585908.,
      3601406., 3616904., 3647900., 3663464., 3679028., 3694592., 5531825.,
      5553538., 5575251., 5596964., 5638614., 5660404., 5682194., 5703984.,
      5746019., 5767886., 5789753., 5811620., 5854040., 5875984., 5897928.,
      5919872., 7946357., 7979690., 8013023., 8046356., 8108902., 8142356.,
      8175810., 8209264., 8272415., 8305990., 8339565., 8373140., 8436896.,
      8470592., 8504288., 8537984., 7870469., 7902666., 7934863., 7967060.,
      8028470., 8060788., 8093106., 8125424., 8187439., 8219878., 8252317.,
      8284756., 8347376., 8379936., 8412496., 8445056., 7737834., 7768644.,
      7799454., 7830264., 7888008., 7918928., 7949848., 7980768., 8039062.,
      8070092., 8101122., 8132152., 8190996., 8222136., 8253276., 8284416.,
      4466678., 4485692., 4504706., 4523720., 4557704., 4576784., 4595864.,
      4614944., 4649258., 4668404., 4687550., 4706696., 4741340., 4760552.,
      4779764., 4798976., 3277205., 3290026., 3302847., 3315668., 3340638.,
      3353508., 3366378., 3379248., 3404463., 3417382., 3430301., 3443220.,
      3468680., 3481648., 3494616., 3507584., 4820073., 4839666., 4859259.,
      4878852., 4915950., 4935620., 4955290., 4974960., 5012443., 5032190.,
      5051937., 5071684., 5109552., 5129376., 5149200., 5169024., 4978489.,
      4997266., 5016043., 5034820., 5071102., 5089956., 5108810., 5127664.,
      5164331., 5183262., 5202193., 5221124., 5258176., 5277184., 5296192.,
      5315200., 4928914., 4946964., 4965014., 4983064., 5017352., 5035472.,
      5053592., 5071712., 5106350., 5124540., 5142730., 5160920., 5195908.,
      5214168., 5232428., 5250688., 2816206., 2827372., 2838538., 2849704.,
      2869576., 2880784., 2891992., 2903200., 2923282., 2934532., 2945782.,
      2957032., 2977324., 2988616., 2999908., 3011200.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x15x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056.};
  const std::array<int, 4> in_shape = {{1, 15, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      300272., 476080.,  503360.,  321440., 583352., 909436., 938960., 590744.,
      874412., 1352296., 1381820., 863324., 402192., 610148., 622160., 380632.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {798721., 828245., 1241581., 1271105.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      597380.,  600544.,  947012.,  952160.,  1001220., 1006720., 639268.,
      642880.,  1159466., 1166704., 1807256., 1818872., 1865820., 1877920.,
      1173634., 1181488., 1736966., 1748824., 2685716., 2704592., 2744280.,
      2763640., 1714174., 1726648., 795368.,  804384.,  1205974., 1220296.,
      1229690., 1244320., 751856.,  761264.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1587641., 1597442., 1646205.,
                                         1656490., 2466101., 2483162.,
                                         2524665., 2542210.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1191596., 1194760., 1197924., 1201088., 1888876., 1894024., 1899172.,
      1904320., 1996940., 2002440., 2007940., 2013440., 1274924., 1278536.,
      1282148., 1285760., 2311694., 2318932., 2326170., 2333408., 3602896.,
      3614512., 3626128., 3637744., 3719540., 3731640., 3743740., 3755840.,
      2339414., 2347268., 2355122., 2362976., 3462074., 3473932., 3485790.,
      3497648., 5352556., 5371432., 5390308., 5409184., 5469200., 5488560.,
      5507920., 5527280., 3415874., 3428348., 3440822., 3453296., 1581720.,
      1590736., 1599752., 1608768., 2397626., 2411948., 2426270., 2440592.,
      2444750., 2459380., 2474010., 2488640., 1494304., 1503712., 1513120.,
      1522528.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481., 3175282., 3185083., 3194884., 3282125., 3292410.,
      3302695., 3312980., 4915141., 4932202., 4949263., 4966324.,
      5031785., 5049330., 5066875., 5084420.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1185912., 1201088., 1880472., 1904320., 1988888., 2013440., 1270136.,
      1285760., 2309307., 2333408., 3599871., 3637744., 3716999., 3755840.,
      2338259., 2362976., 3464307., 3497648., 5356791., 5409184., 5473919.,
      5527280., 3419339., 3453296., 1586767., 1608768., 2406019., 2440592.,
      2453451., 2488640., 1500135., 1522528.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3160641., 3194884., 3277769.,
                                         3312980., 4917561., 4966324.,
                                         5034689., 5084420.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2365552.,  2371824.,  2395848.,  2402176.,  3750736.,  3760944.,
      3798344.,  3808640.,  3966864.,  3977776.,  4015880.,  4026880.,
      2533104.,  2540272.,  2564296.,  2571520.,  4604215.,  4618614.,
      4652340.,  4666816.,  7176631.,  7199742.,  7252256.,  7275488.,
      7409919.,  7433998.,  7487480.,  7511680.,  4660887.,  4676518.,
      4710244.,  4725952.,  6904975.,  6928614.,  6971580.,  6995296.,
      10675951., 10713582., 10780616., 10818368., 10909239., 10947838.,
      11015840., 11054560., 6813807.,  6838678.,  6881644.,  6906592.,
      3155551.,  3173534.,  3199504.,  3217536.,  4783471.,  4812038.,
      4852540.,  4881184.,  4877719.,  4906902.,  4948020.,  4977280.,
      2981503.,  3000270.,  3026240.,  3045056.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166.,  6389768., 6535089., 6555538.,
      6605390.,  6625960.,  9801121.,  9835122., 9898526., 9932648.,
      10034409., 10069378., 10133750., 10168840.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1837664.,  1843936.,  1850208.,  1856480.,  1879256.,  1885584.,
      1891912.,  1898240.,  2875584.,  2885792.,  2896000.,  2906208.,
      2941528.,  2951824.,  2962120.,  2972416.,  3073664.,  3084576.,
      3095488.,  3106400.,  3142424.,  3153424.,  3164424.,  3175424.,
      1958880.,  1966048.,  1973216.,  1980384.,  2003288.,  2010512.,
      2017736.,  2024960.,  4033583.,  4047982.,  4062381.,  4076780.,
      4110812.,  4125288.,  4139764.,  4154240.,  6212391.,  6235502.,
      6258613.,  6281724.,  6334336.,  6357568.,  6380800.,  6404032.,
      6444527.,  6468606.,  6492685.,  6516764.,  6570344.,  6594544.,
      6618744.,  6642944.,  4055583.,  4071214.,  4086845.,  4102476.,
      4136300.,  4152008.,  4167716.,  4183424.,  6352583.,  6376222.,
      6399861.,  6423500.,  6466772.,  6490488.,  6514204.,  6537920.,
      9694431.,  9732062.,  9769693.,  9807324.,  9874456.,  9912208.,
      9949960.,  9987712.,  9926567.,  9965166.,  10003765., 10042364.,
      10110464., 10149184., 10187904., 10226624., 6201783.,  6226654.,
      6251525.,  6276396.,  6319460.,  6344408.,  6369356.,  6394304.,
      4212863.,  4230846.,  4248829.,  4266812.,  4296112.,  4314144.,
      4332176.,  4350208.,  6491463.,  6520030.,  6548597.,  6577164.,
      6622868.,  6651512.,  6680156.,  6708800.,  6626095.,  6655278.,
      6684461.,  6713644.,  6759964.,  6789224.,  6818484.,  6847744.,
      4249007.,  4267774.,  4286541.,  4305308.,  4334848.,  4353664.,
      4372480.,  4391296.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881., 5361362., 5380843., 5400324., 5449306., 5468908., 5488510.,
      5508112., 5574017., 5594466., 5614915., 5635364., 5685314., 5705884.,
      5726454., 5747024., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4713464., 4743648., 4773944., 4804352., 7474456., 7521888., 7569496.,
      7617280., 7906712., 7955552., 8004568., 8053760., 5049464., 5080544.,
      5111736., 5143040., 4619657., 4656876., 4694249., 4731776., 6748549.,
      6805500., 6862693., 6920128., 6537237., 6594076., 6651157., 6708480.,
      3755801., 3790668., 3825689., 3860864., 5336121., 5377484., 5419001.,
      5460672., 8092661., 8156124., 8219829., 8283776., 8241797., 8305148.,
      8368741., 8432576., 5036745., 5075756., 5114921., 5154240., 2264045.,
      2282812., 2301677., 2320640., 3523289., 3552780., 3582425., 3612224.,
      3711785., 3742508., 3773385., 3804416., 2318141., 2337692., 2357341.,
      2377088.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828.,
      6841281., 6896976., 7384921., 7446756., 7508833., 7571152.,
      7443945., 7505668., 7567633., 7629840.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3659048., 3671536., 3700416., 3712960., 3742008., 3754608., 3783824.,
      3796480., 5726408., 5746736., 5792000., 5812416., 5857944., 5878448.,
      5924240., 5944832., 6122568., 6144304., 6190976., 6212800., 6259736.,
      6281648., 6328848., 6350848., 3902248., 3916528., 3946432., 3960768.,
      3990840., 4005232., 4035472., 4049920., 4424417., 4442386., 4479834.,
      4497880., 4535559., 4553682., 4591592., 4609792., 6700277., 6727946.,
      6784874., 6812664., 6869955., 6897866., 6955520., 6983552., 6859397.,
      6886954., 6943770., 6971448., 7028627., 7056426., 7113968., 7141888.,
      4351585., 4368434., 4403322., 4420248., 4455367., 4472370., 4507720.,
      4524800., 5500945., 5523058., 5564650., 5586840., 5628663., 5650930.,
      5692984., 5715328., 7882853., 7917034., 7980474., 8014776., 8078579.,
      8113002., 8177168., 8211712., 7714293., 7748362., 7811690., 7845880.,
      7909571., 7943882., 8007936., 8042368., 4443537., 4464530., 4503562.,
      4524632., 4563895., 4585042., 4624536., 4645760., 2720653., 2731482.,
      2753530., 2764408., 2786603., 2797530., 2819872., 2830848., 4349649.,
      4367282., 4401898., 4419608., 4454455., 4472242., 4507320., 4525184.,
      4618913., 4637778., 4673626., 4692568., 4728647., 4747666., 4783976.,
      4803072., 3072013., 3084410., 3107482., 3119928., 3143147., 3155642.,
      3179008., 3191552.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3285384., 3297872., 3310360., 3322848., 3349632., 3362176., 3374720.,
      3387264., 3414328., 3426928., 3439528., 3452128., 3479472., 3492128.,
      3504784., 3517440., 5079592., 5099920., 5120248., 5140576., 5182016.,
      5202432., 5222848., 5243264., 5285144., 5305648., 5326152., 5346656.,
      5388976., 5409568., 5430160., 5450752., 5411752., 5433488., 5455224.,
      5476960., 5519808., 5541632., 5563456., 5585280., 5628568., 5650480.,
      5672392., 5694304., 5738032., 5760032., 5782032., 5804032., 3543176.,
      3557456., 3571736., 3586016., 3613568., 3627904., 3642240., 3656576.,
      3684408., 3698800., 3713192., 3727584., 3755696., 3770144., 3784592.,
      3799040., 4738449., 4756418., 4774387., 4792356., 4830262., 4848308.,
      4866354., 4884400., 4922691., 4940814., 4958937., 4977060., 5015736.,
      5033936., 5052136., 5070336., 6579157., 6606826., 6634495., 6662164.,
      6719046., 6746836., 6774626., 6802416., 6859903., 6887814., 6915725.,
      6943636., 7001728., 7029760., 7057792., 7085824., 6430565., 6458122.,
      6485679., 6513236., 6570006., 6597684., 6625362., 6653040., 6710415.,
      6738214., 6766013., 6793812., 6851792., 6879712., 6907632., 6935552.,
      3808497., 3825346., 3842195., 3859044., 3893974., 3910900., 3927826.,
      3944752., 3980067., 3997070., 4014073., 4031076., 4066776., 4083856.,
      4100936., 4118016., 5486529., 5508642., 5530755., 5552868., 5594918.,
      5617108., 5639298., 5661488., 5703923., 5726190., 5748457., 5770724.,
      5813544., 5835888., 5858232., 5880576., 7962949., 7997130., 8031311.,
      8065492., 8128886., 8163188., 8197490., 8231792., 8295791., 8330214.,
      8364637., 8399060., 8463664., 8498208., 8532752., 8567296., 8207573.,
      8241642., 8275711., 8309780., 8373062., 8407252., 8441442., 8475632.,
      8539519., 8573830., 8608141., 8642452., 8706944., 8741376., 8775808.,
      8810240., 5192481., 5213474., 5234467., 5255460., 5294534., 5315604.,
      5336674., 5357744., 5397203., 5418350., 5439497., 5460644., 5500488.,
      5521712., 5542936., 5564160., 2680013., 2690842., 2701671., 2712500.,
      2735478., 2746356., 2757234., 2768112., 2791335., 2802262., 2813189.,
      2824116., 2847584., 2858560., 2869536., 2880512., 4077761., 4095394.,
      4113027., 4130660., 4165798., 4183508., 4201218., 4218928., 4254451.,
      4272238., 4290025., 4307812., 4343720., 4361584., 4379448., 4397312.,
      4352913., 4371778., 4390643., 4409508., 4445878., 4464820., 4483762.,
      4502704., 4539459., 4558478., 4577497., 4596516., 4633656., 4652752.,
      4671848., 4690944., 2766253., 2778650., 2791047., 2803444., 2826390.,
      2838836., 2851282., 2863728., 2886919., 2899414., 2911909., 2924404.,
      2947840., 2960384., 2972928., 2985472.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832.};
  const std::array<int, 4> in_shape = {{1, 16, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {365360.,  511852.,  539132.,  343700.,
                                         708092.,  974413.,  1003937., 631015.,
                                         1060092., 1446797., 1476321., 921767.,
                                         485380.,  652575.,  664587.,  406357.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {848936., 878460., 1321320., 1350844.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      726848.,  730720.,  1018160., 1023704., 1072368., 1078264., 683536.,
      687400.,  1407340., 1416184., 1936363., 1948826., 1994927., 2007874.,
      1253637., 1262030., 2105708., 2120184., 2873387., 2893594., 2931951.,
      2952642., 1830213., 1843534., 959756.,  970760.,  1289827., 1305150.,
      1313543., 1329174., 802669.,  812714.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1687466., 1697872., 1746030.,
                                         1756920., 2624490., 2642640.,
                                         2683054., 2701688.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1449824., 1453696., 1457568., 1461440., 2030776., 2036320., 2041864.,
      2047408., 2138840., 2144736., 2150632., 2156528., 1363208., 1367072.,
      1370936., 1374800., 2805836., 2814680., 2823524., 2832368., 3860263.,
      3872726., 3885189., 3897652., 3976907., 3989854., 4002801., 4015748.,
      2498881., 2507274., 2515667., 2524060., 4196940., 4211416., 4225892.,
      4240368., 5726567., 5746774., 5766981., 5787188., 5843211., 5863902.,
      5884593., 5905284., 3647105., 3660426., 3673747., 3687068., 1908508.,
      1919512., 1930516., 1941520., 2564331., 2579654., 2594977., 2610300.,
      2611455., 2627086., 2642717., 2658348., 1595293., 1605338., 1615383.,
      1625428.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526., 3374932., 3385338., 3395744., 3481170., 3492060.,
      3502950., 3513840., 5230830., 5248980., 5267130., 5285280.,
      5347474., 5366108., 5384742., 5403376.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1443648., 1461440., 2022768., 2047408., 2131184., 2156528., 1358672.,
      1374800., 2803768., 2832368., 3858085., 3897652., 3975213., 4015748.,
      2498265., 2524060., 4200504., 4240368., 5732133., 5787188., 5849261.,
      5905284., 3651417., 3687068., 1915032., 1941520., 2573725., 2610300.,
      2621157., 2658348., 1601761., 1625428.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3360291., 3395744., 3477419.,
                                         3513840., 5234339., 5285280.,
                                         5351467., 5403376.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2879616.,  2887296.,  2915136.,  2922880.,  4034536.,  4045536.,
      4083728.,  4094816.,  4250664.,  4262368.,  4301264.,  4313056.,
      2709672.,  2717344.,  2741872.,  2749600.,  5589936.,  5607536.,
      5647048.,  5664736.,  7691365.,  7716170.,  7770378.,  7795304.,
      7924653.,  7950426.,  8005602.,  8031496.,  4979821.,  4996530.,
      5031334.,  5048120.,  8372144.,  8401008.,  8451784.,  8480736.,
      11423973., 11464266., 11533962., 11574376., 11657261., 11698522.,
      11769186., 11810568., 7276269.,  7302834.,  7347494.,  7374136.,
      3808112.,  3830064.,  3861032.,  3883040.,  5116881.,  5147450.,
      5189954.,  5220600.,  5211129.,  5242314.,  5285434.,  5316696.,
      3183481.,  3203522.,  3230766.,  3250856.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2231040.,  2238720.,  2246400.,  2254080.,  2280512.,  2288256.,
      2296000.,  2303744.,  3098328.,  3109328.,  3120328.,  3131328.,
      3167440.,  3178528.,  3189616.,  3200704.,  3296408.,  3308112.,
      3319816.,  3331520.,  3368336.,  3380128.,  3391920.,  3403712.,
      2096472.,  2104144.,  2111816.,  2119488.,  2142896.,  2150624.,
      2158352.,  2166080.,  4889248.,  4906848.,  4924448.,  4942048.,
      4981880.,  4999568.,  5017256.,  5034944.,  6662629.,  6687434.,
      6712239.,  6737044.,  6791350.,  6816276.,  6841202.,  6866128.,
      6894765.,  6920538.,  6946311.,  6972084.,  7027358.,  7053252.,
      7079146.,  7105040.,  4333973.,  4350682.,  4367391.,  4384100.,
      4419002.,  4435788.,  4452574.,  4469360.,  7689888.,  7718752.,
      7747616.,  7776480.,  7827576.,  7856528.,  7885480.,  7914432.,
      10376805., 10417098., 10457391., 10497684., 10567478., 10607892.,
      10648306., 10688720., 10608941., 10650202., 10691463., 10732724.,
      10803486., 10844868., 10886250., 10927632., 6623253.,  6649818.,
      6676383.,  6702948.,  6747706.,  6774348.,  6800990.,  6827632.,
      5122336.,  5144288.,  5166240.,  5188192.,  5223000.,  5245008.,
      5267016.,  5289024.,  6945337.,  6975906.,  7006475.,  7037044.,
      7084750.,  7115396.,  7146042.,  7176688.,  7079969.,  7111154.,
      7142339.,  7173524.,  7221846.,  7253108.,  7284370.,  7315632.,
      4537001.,  4557042.,  4577083.,  4597124.,  4627938.,  4648028.,
      4668118.,  4688208.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5739200., 5774592., 5810112., 5845760., 8042056., 8091072., 8140264.,
      8189632., 8474312., 8524736., 8575336., 8626112., 5402600., 5434688.,
      5466888., 5499200., 4588152., 4628704., 4669432., 4710336., 6455009.,
      6511252., 6567737., 6624464., 6921585., 6979764., 7038185., 7096848.,
      4393669., 4430692., 4467869., 4505200., 6466168., 6512864., 6559736.,
      6606784., 8986593., 9051284., 9116217., 9181392., 9453169., 9519796.,
      9586665., 9653776., 5961669., 6004068., 6046621., 6089328., 3048472.,
      3072608., 3096856., 3121216., 4190109., 4223604., 4257253., 4291056.,
      4378605., 4413332., 4448213., 4483248., 2722097., 2744196., 2766393.,
      2788688.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148.,
      6902973., 6959040., 7865341., 7927436., 7989773., 8052352.,
      8331917., 8395948., 8460221., 8524736.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4443584., 4458880., 4492800., 4508160., 4542272., 4557696., 4592000.,
      4607488., 6171896., 6193808., 6240656., 6262656., 6309768., 6331856.,
      6379232., 6401408., 6568056., 6591376., 6639632., 6663040., 6711560.,
      6735056., 6783840., 6807424., 4177432., 4192720., 4223632., 4238976.,
      4270056., 4285456., 4316704., 4332160., 5021640., 5040368., 5081152.,
      5099968., 5141016., 5159920., 5201232., 5220224., 7055985., 7082946.,
      7139166., 7166248., 7222831., 7250034., 7306980., 7334304., 7520257.,
      7549154., 7607310., 7636328., 7694847., 7723986., 7782868., 7812128.,
      4908365., 4927370., 4964414., 4983496., 5020771., 5039930., 5077436.,
      5096672., 5887944., 5912816., 5959744., 5984704., 6031896., 6056944.,
      6104400., 6129536., 8047473., 8082882., 8147550., 8183080., 8248111.,
      8283762., 8349156., 8384928., 8511745., 8549090., 8615694., 8653160.,
      8720127., 8757714., 8825044., 8862752., 5286477., 5310858., 5353278.,
      5377736., 5420387., 5444922., 5487804., 5512416., 3764456., 3779632.,
      3807552., 3822784., 3850872., 3866160., 3894416., 3909760., 5257397.,
      5279034., 5317654., 5339368., 5378219., 5400010., 5439092., 5460960.,
      5526661., 5549530., 5589382., 5612328., 5652411., 5675434., 5715748.,
      5738848., 3648001., 3662946., 3688566., 3703560., 3729327., 3744370.,
      3770284., 3785376.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3999168.,  4014464., 4029760., 4045056., 4076544., 4091904., 4107264.,
      4122624.,  4154432., 4169856., 4185280., 4200704., 4232832., 4248320.,
      4263808.,  4279296., 5471320., 5493232., 5515144., 5537056., 5580080.,
      5602080.,  5624080., 5646080., 5689544., 5711632., 5733720., 5755808.,
      5799712.,  5821888., 5844064., 5866240., 5803480., 5826800., 5850120.,
      5873440.,  5917872., 5941280., 5964688., 5988096., 6032968., 6056464.,
      6079960.,  6103456., 6148768., 6172352., 6195936., 6219520., 3791480.,
      3806768.,  3822056., 3837344., 3865904., 3881248., 3896592., 3911936.,
      3940776.,  3956176., 3971576., 3986976., 4016096., 4031552., 4047008.,
      4062464.,  4645480., 4664208., 4682936., 4701664., 4742912., 4761728.,
      4780544.,  4799360., 4841048., 4859952., 4878856., 4897760., 4939888.,
      4958880.,  4977872., 4996864., 6326673., 6353634., 6380595., 6407556.,
      6463730.,  6490812., 6517894., 6544976., 6601755., 6628958., 6656161.,
      6683364.,  6740748., 6768072., 6795396., 6822720., 6786337., 6815234.,
      6844131.,  6873028., 6931138., 6960156., 6989174., 7018192., 7076907.,
      7106046.,  7135185., 7164324., 7223644., 7252904., 7282164., 7311424.,
      4332125.,  4351130., 4370135., 4389140., 4426226., 4445308., 4464390.,
      4483472.,  4520943., 4540102., 4559261., 4578420., 4616276., 4635512.,
      4654748.,  4673984., 6634088., 6658960., 6683832., 6708704., 6756096.,
      6781056.,  6806016., 6830976., 6878808., 6903856., 6928904., 6953952.,
      7002224.,  7027360., 7052496., 7077632., 8956561., 8991970., 9027379.,
      9062788.,  9127410., 9162940., 9198470., 9234000., 9299227., 9334878.,
      9370529.,  9406180., 9472012., 9507784., 9543556., 9579328., 9416225.,
      9453570.,  9490915., 9528260., 9594818., 9632284., 9669750., 9707216.,
      9774379.,  9811966., 9849553., 9887140., 9954908., 9992616., 10030324.,
      10068032., 6000477., 6024858., 6049239., 6073620., 6116082., 6140540.,
      6164998.,  6189456., 6232303., 6256838., 6281373., 6305908., 6349140.,
      6373752.,  6398364., 6422976., 3704968., 3720144., 3735320., 3750496.,
      3779328.,  3794560., 3809792., 3825024., 3854136., 3869424., 3884712.,
      3900000.,  3929392., 3944736., 3960080., 3975424., 4979941., 5001578.,
      5023215.,  5044852., 5083994., 5105708., 5127422., 5149136., 5188663.,
      5210454.,  5232245., 5254036., 5293948., 5315816., 5337684., 5359552.,
      5255093.,  5277962., 5300831., 5323700., 5364074., 5387020., 5409966.,
      5432912.,  5473671., 5496694., 5519717., 5542740., 5583884., 5606984.,
      5630084.,  5653184., 3313569., 3328514., 3343459., 3358404., 3383898.,
      3398892.,  3413886., 3428880., 3454619., 3469662., 3484705., 3499748.,
      3525732.,  3540824., 3555916., 3571008.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824.};
  const std::array<int, 4> in_shape = {{1, 16, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      356720.,  562936.,  590216., 555060.,  332636.,  696080.,  1082224.,
      1111748., 1027290., 607706., 1045352., 1613656., 1643180., 1506450.,
      885698.,  480984.,  728420., 740432.,  674520.,  388276.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {949366., 978890., 1480798., 1510322.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      709688.,  713440.,  1119800., 1125872., 1174008., 1180432., 1104000.,
      1110120., 661504.,  665272.,  1383536., 1392160., 2150654., 2164448.,
      2209218., 2223496., 2041215., 2054580., 1207261., 1215412., 2076536.,
      2090704., 3204806., 3227312., 3263370., 3286360., 2991615., 3012900.,
      1758493., 1771396., 951188.,  961968.,  1439746., 1456840., 1463462.,
      1480864., 1332975., 1349040., 766829.,  776552.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1887116., 1898732., 1945680.,
                                         1957780., 2941268., 2961596.,
                                         2999832., 3020644.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1415624., 1419376., 1423128., 1426880., 2233528., 2239600., 2245672.,
      2251744., 2341592., 2348016., 2354440., 2360864., 2201880., 2208000.,
      2214120., 2220240., 1319240., 1323008., 1326776., 1330544., 2758448.,
      2767072., 2775696., 2784320., 4287514., 4301308., 4315102., 4328896.,
      4404158., 4418436., 4432714., 4446992., 4069065., 4082430., 4095795.,
      4109160., 2406371., 2414522., 2422673., 2430824., 4138904., 4153072.,
      4167240., 4181408., 6387106., 6409612., 6432118., 6454624., 6503750.,
      6526740., 6549730., 6572720., 5961945., 5983230., 6004515., 6025800.,
      3504083., 3516986., 3529889., 3542792., 1891596., 1902376., 1913156.,
      1923936., 2862398., 2879492., 2896586., 2913680., 2909522., 2926924.,
      2944326., 2961728., 2649885., 2665950., 2682015., 2698080., 1523935.,
      1533658., 1543381., 1553104.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616., 3774232., 3785848., 3797464., 3879260., 3891360.,
      3903460., 3915560., 5862208., 5882536., 5902864., 5923192.,
      5978852., 5999664., 6020476., 6041288.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1410528., 1426880., 2226048., 2251744., 2334464., 2360864., 2195760.,
      2220240., 1315856., 1330544., 2757447., 2784320., 4286667., 4328896.,
      4403795., 4446992., 4069230., 4109160., 2406866., 2430824., 4143447.,
      4181408., 6394971., 6454624., 6512099., 6572720., 5970030., 6025800.,
      3509330., 3542792., 1898407., 1923936., 2873563., 2913680., 2920995.,
      2961728., 2660630., 2698080., 1530634., 1553104.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3759591., 3797464., 3876719.,
                                         3915560., 5867895., 5923192.,
                                         5985023., 6041288.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2813608.,  2821056.,  2846256.,  2853760.,  4440040.,  4452096.,
      4491344.,  4503488.,  4656168.,  4668928.,  4708880.,  4721728.,
      4379360.,  4391520.,  4428240.,  4440480.,  2624224.,  2631712.,
      2653552.,  2661088.,  5497723.,  5514894.,  5551392.,  5568640.,
      8545867.,  8573334.,  8630204.,  8657792.,  8779155.,  8807590.,
      8865428.,  8893984.,  8111840.,  8138460.,  8191590.,  8218320.,
      4797496.,  4813732.,  4845346.,  4861648.,  8258635.,  8286894.,
      8334480.,  8362816.,  12745051., 12789942., 12864236., 12909248.,
      12978339., 13024198., 13099460., 13145440., 11897600., 11940060.,
      12009030., 12051600., 6992920.,  7018660.,  7059778.,  7085584.,
      3775303.,  3796814.,  3826312.,  3847872.,  5713015.,  5747126.,
      5793172.,  5827360.,  5807263.,  5841990.,  5888652.,  5923456.,
      5289200.,  5321260.,  5364030.,  5396160.,  3041864.,  3061268.,
      3086762.,  3106208.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  11695255., 11735790., 11805728., 11846384.,
      11928543., 11970046., 12040952., 12082576.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2182712., 2190160., 2197608., 2205056., 2229008., 2236512., 2244016.,
      2251520., 3395256., 3407312., 3419368., 3431424., 3468592., 3480736.,
      3492880., 3505024., 3593336., 3606096., 3618856., 3631616., 3669488.,
      3682336., 3695184., 3708032., 3418176., 3430336., 3442496., 3454656.,
      3489744., 3501984., 3514224., 3526464., 2015360., 2022848., 2030336.,
      2037824., 2058608., 2066144., 2073680., 2081216., 4813283., 4830454.,
      4847625., 4864796., 4901600., 4918848., 4936096., 4953344., 7389003.,
      7416470., 7443937., 7471404., 7528372., 7555960., 7583548., 7611136.,
      7621139., 7649574., 7678009., 7706444., 7764380., 7792936., 7821492.,
      7850048., 7108548., 7135168., 7161788., 7188408., 7241826., 7268556.,
      7295286., 7322016., 4141316., 4157552., 4173788., 4190024., 4221590.,
      4237892., 4254194., 4270496., 5530675., 5553814., 5576953., 5600092.,
      5642864., 5666080., 5689296., 5712512., 8056155., 8091830., 8127505.,
      8163180., 8228356., 8264152., 8299948., 8335744., 7688227., 7722822.,
      7757417., 7792012., 7856108., 7890824., 7925540., 7960256., 7207460.,
      7239680., 7271900., 7304120., 7363138., 7395468., 7427798., 7460128.,
      4191140., 4210736., 4230332., 4249928., 4284854., 4304516., 4324178.,
      4343840., 4514951., 4531342., 4547733., 4564124., 4591832., 4608272.,
      4624712., 4641152., 6174127., 6199022., 6223917., 6248812., 6290844.,
      6315816., 6340788., 6365760., 5381015., 5404478., 5427941., 5451404.,
      5492004., 5515544., 5539084., 5562624., 4920996., 4942816., 4964636.,
      4986456., 5023994., 5045884., 5067774., 5089664., 2783428., 2796688.,
      2809948., 2823208., 2845534., 2858836., 2872138., 2885440.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391., 6367502., 6390613., 6413724., 6466336., 6489568., 6512800.,
      6536032., 6576527., 6600606., 6624685., 6648764., 6702344., 6726544.,
      6750744., 6774944., 8999639., 9036590., 9073541., 9110492., 9176944.,
      9214016., 9251088., 9288160., 8451487., 8487358., 8523229., 8559100.,
      8624472., 8660464., 8696456., 8732448.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4398696., 4428672., 4458760., 4488960., 6710344., 6756864., 6803560.,
      6850432., 6688968., 6735872., 6782952., 6830208., 6384240., 6427840.,
      6471600., 6515520., 3848720., 3874880., 3901136., 3927488., 4438545.,
      4475164., 4511937., 4548864., 6832301., 6889260., 6946461., 7003904.,
      7025469., 7083340., 7141453., 7199808., 6699790., 6753720., 6807870.,
      6862240., 4004066., 4036424., 4068914., 4101536., 4810673., 4850012.,
      4889505., 4929152., 6988493., 7048556., 7108861., 7169408., 6536541.,
      6595468., 6654637., 6714048., 6253390., 6308280., 6363390., 6418720.,
      3731618., 3764552., 3797618., 3830816., 2058685., 2079388., 2100189.,
      2121088., 2884841., 2916204., 2947721., 2979392., 2608441., 2638988.,
      2669689., 2700544., 2483350., 2511960., 2540710., 2569600., 1448218.,
      1465384., 1482634., 1499968.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788.,
      6640821., 6696096., 7986501., 8049116., 8111973., 8175072.,
      7399381., 7460860., 7522581., 7584544.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3240664., 3252944., 3281616., 3293952., 3322792., 3335184., 3364192.,
      3376640., 4844216., 4863632., 4907984., 4927488., 4972104., 4991696.,
      5036576., 5056256., 4858424., 4878224., 4922960., 4942848., 4987848.,
      5007824., 5053088., 5073152., 4740144., 4759264., 4801152., 4820352.,
      4862480., 4881760., 4924128., 4943488., 2822608., 2834464., 2859520.,
      2871424., 2896624., 2908576., 2933920., 2945920., 5199433., 5216802.,
      5253650., 5271096., 5308175., 5325698., 5363008., 5380608., 8209213.,
      8236890., 8293826., 8321624., 8378923., 8406842., 8464504., 8492544.,
      8651981., 8680570., 8738418., 8767128., 8825339., 8854170., 8912744.,
      8941696., 8328338., 8355868., 8409976., 8437616., 8492054., 8519804.,
      8574572., 8602432., 4995886., 5012932., 5045176., 5062288., 5094730.,
      5111908., 5144548., 5161792., 4155113., 4175202., 4214770., 4234936.,
      4274735., 4294978., 4335008., 4355328., 5880669., 5911450., 5971490.,
      6002392., 6062795., 6093818., 6154584., 6185728., 5559533., 5589178.,
      5648082., 5677848., 5737115., 5767002., 5826632., 5856640., 5419346.,
      5447836., 5502904., 5531504., 5586902., 5615612., 5671340., 5700160.,
      3172462., 3190084., 3222904., 3240592., 3273610., 3291364., 3324580.,
      3342400., 3850141., 3862906., 3886890., 3899704., 3923835., 3936698.,
      3960976., 3973888., 5292961., 5312466., 5348954., 5368536., 5405255.,
      5424914., 5461864., 5481600., 4634481., 4653170., 4688842., 4707608.,
      4743511., 4762354., 4798488., 4817408., 4373754., 4391724., 4425272.,
      4443312., 4477070., 4495180., 4529148., 4547328., 2532038., 2543156.,
      2563256., 2574416., 2594642., 2605844., 2626196., 2637440.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x16x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3003832., 3016112., 3028392., 3040672., 3067248., 3079584., 3091920.,
      3104256., 3131112., 3143504., 3155896., 3168288., 3195424., 3207872.,
      3220320., 3232768., 4526488., 4545904., 4565320., 4584736., 4625264.,
      4644768., 4664272., 4683776., 4724744., 4744336., 4763928., 4783520.,
      4824928., 4844608., 4864288., 4883968., 4620056., 4639856., 4659656.,
      4679456., 4720368., 4740256., 4760144., 4780032., 4821384., 4841360.,
      4861336., 4881312., 4923104., 4943168., 4963232., 4983296., 4550576.,
      4569696., 4588816., 4607936., 4646400., 4665600., 4684800., 4704000.,
      4742864., 4762144., 4781424., 4800704., 4839968., 4859328., 4878688.,
      4898048., 2761040., 2772896., 2784752., 2796608., 2819456., 2831360.,
      2843264., 2855168., 2878256., 2890208., 2902160., 2914112., 2937440.,
      2949440., 2961440., 2973440., 4630201., 4647570., 4664939., 4682308.,
      4719614., 4737060., 4754506., 4771952., 4809643., 4827166., 4844689.,
      4862212., 4900288., 4917888., 4935488., 4953088., 7053405., 7081082.,
      7108759., 7136436., 7193326., 7221124., 7248922., 7276720., 7334215.,
      7362134., 7390053., 7417972., 7476072., 7504112., 7532152., 7560192.,
      7471085., 7499674., 7528263., 7556852., 7614654., 7643364., 7672074.,
      7700784., 7759191., 7788022., 7816853., 7845684., 7904696., 7933648.,
      7962600., 7991552., 7344026., 7371556., 7399086., 7426616., 7481080.,
      7508720., 7536360., 7564000., 7619014., 7646764., 7674514., 7702264.,
      7757828., 7785688., 7813548., 7841408., 4251590., 4268636., 4285682.,
      4302728., 4334744., 4351856., 4368968., 4386080., 4418426., 4435604.,
      4452782., 4469960., 4502636., 4519880., 4537124., 4554368., 4947289.,
      4967378., 4987467., 5007556., 5047582., 5067748., 5087914., 5108080.,
      5148491., 5168734., 5188977., 5209220., 5250016., 5270336., 5290656.,
      5310976., 7095421., 7126202., 7156983., 7187764., 7247758., 7278660.,
      7309562., 7340464., 7401063., 7432086., 7463109., 7494132., 7555336.,
      7586480., 7617624., 7648768., 7035917., 7065562., 7095207., 7124852.,
      7183710., 7213476., 7243242., 7273008., 7332471., 7362358., 7392245.,
      7422132., 7482200., 7512208., 7542216., 7572224., 6849882., 6878372.,
      6906862., 6935352., 6990776., 7019376., 7047976., 7076576., 7132550.,
      7161260., 7189970., 7218680., 7275204., 7304024., 7332844., 7361664.,
      4044806., 4062428., 4080050., 4097672., 4130264., 4147952., 4165640.,
      4183328., 4216250., 4234004., 4251758., 4269512., 4302764., 4320584.,
      4338404., 4356224., 3626333., 3639098., 3651863., 3664628., 3689542.,
      3702356., 3715170., 3727984., 3753143., 3766006., 3778869., 3791732.,
      3817136., 3830048., 3842960., 3855872., 4741905., 4761410., 4780915.,
      4800420., 4837430., 4857012., 4876594., 4896176., 4933571., 4953230.,
      4972889., 4992548., 5030328., 5050064., 5069800., 5089536., 4212193.,
      4230882., 4249571., 4268260., 4304454., 4323220., 4341986., 4360752.,
      4397331., 4416174., 4435017., 4453860., 4490824., 4509744., 4528664.,
      4547584., 4082114., 4100084., 4118054., 4136024., 4170232., 4188272.,
      4206312., 4224352., 4258910., 4277020., 4295130., 4313240., 4348148.,
      4366328., 4384508., 4402688., 2174494., 2185612., 2196730., 2207848.,
      2227672., 2238832., 2249992., 2261152., 2281186., 2292388., 2303590.,
      2314792., 2335036., 2346280., 2357524., 2368768.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x16x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056.};
  const std::array<int, 4> in_shape = {{1, 16, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236621.,  377531., 403095.,  258769.,  510587., 798721., 828245.,
      522599.,  801647., 1241581., 1271105., 795179., 866355., 1332155.,
      1356575., 842695., 350637.,  526581.,  535425., 324009.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {798721., 828245., 1241581., 1271105.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      470841.,  473242.,  751135.,  755062.,  801955.,  806190.,  514745.,
      517538.,  1015091., 1021174., 1587641., 1597442., 1646205., 1656490.,
      1038499., 1045198., 1592591., 1603294., 2466101., 2483162., 2524665.,
      2542210., 1579039., 1590358., 1719305., 1732710., 2643025., 2664310.,
      2691425., 2713150., 1671425., 1685390., 691971.,  701274.,  1038411.,
      1053162., 1055835., 1070850., 638379.,  648018.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1587641., 1597442., 1646205.,
                                         1656490., 2466101., 2483162.,
                                         2524665., 2542210.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      939281.,  941682.,  944083.,  946484.,  1498343., 1502270., 1506197.,
      1510124., 1599675., 1603910., 1608145., 1612380., 1026697., 1029490.,
      1032283., 1035076., 2024099., 2030182., 2036265., 2042348., 3165481.,
      3175282., 3185083., 3194884., 3282125., 3292410., 3302695., 3312980.,
      2070299., 2076998., 2083697., 2090396., 3174479., 3185182., 3195885.,
      3206588., 4915141., 4932202., 4949263., 4966324., 5031785., 5049330.,
      5066875., 5084420., 3146759., 3158078., 3169397., 3180716., 3425205.,
      3438610., 3452015., 3465420., 5264765., 5286050., 5307335., 5328620.,
      5361125., 5382850., 5404575., 5426300., 3328885., 3342850., 3356815.,
      3370780., 1374639., 1383942., 1393245., 1402548., 2062071., 2076822.,
      2091573., 2106324., 2096655., 2111670., 2126685., 2141700., 1267119.,
      1276758., 1286397., 1296036.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481., 3175282., 3185083., 3194884., 3282125., 3292410.,
      3302695., 3312980., 4915141., 4932202., 4949263., 4966324.,
      5031785., 5049330., 5066875., 5084420.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933401.,  946484.,  1489565., 1510124., 1591205., 1612380., 1021601.,
      1035076., 2020557., 2042348., 3160641., 3194884., 3277769., 3312980.,
      2067989., 2090396., 3175557., 3206588., 4917561., 4966324., 5034689.,
      5084420., 3149069., 3180716., 3430630., 3465420., 5273950., 5328620.,
      5370750., 5426300., 3335430., 3370780., 1381002., 1402548., 2072466.,
      2106324., 2107314., 2141700., 1274154., 1296036.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3160641., 3194884., 3277769.,
                                         3312980., 4917561., 4966324.,
                                         5034689., 5084420.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1862049.,  1866802.,  1888166.,  1892968.,  2971353.,  2979130.,
      3012394.,  3020248.,  3174017.,  3182410.,  3216290.,  3224760.,
      2037665.,  2043202.,  2064566.,  2070152.,  4029025.,  4041114.,
      4072530.,  4084696.,  6301801.,  6321282.,  6370166.,  6389768.,
      6535089.,  6555538.,  6605390.,  6625960.,  4122657.,  4135978.,
      4167394.,  4180792.,  6329785.,  6351114.,  6391770.,  6413176.,
      9801121.,  9835122.,  9898526.,  9932648.,  10034409., 10069378.,
      10133750., 10168840., 6275577.,  6298138.,  6338794.,  6361432.,
      6834520.,  6861260.,  6904030.,  6930840.,  10505440., 10547900.,
      10614670., 10657240., 10698160., 10741500., 10809150., 10852600.,
      6643000.,  6670860.,  6713630.,  6741560.,  2743440.,  2762004.,
      2786490.,  2805096.,  4115496.,  4144932.,  4183146.,  4212648.,
      4184664.,  4214628.,  4253370.,  4283400.,  2529072.,  2548308.,
      2572794.,  2592072.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166.,  6389768., 6535089., 6555538.,
      6605390.,  6625960.,  9801121.,  9835122., 9898526., 9932648.,
      10034409., 10069378., 10133750., 10168840.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1400497., 1405250., 1410003., 1414756., 1433738., 1438540., 1443342.,
      1448144., 2194769., 2202546., 2210323., 2218100., 2247590., 2255444.,
      2263298., 2271152., 2366009., 2374402., 2382795., 2391188., 2421294.,
      2429764., 2438234., 2446704., 1507233., 1512770., 1518307., 1523844.,
      1543066., 1548652., 1554238., 1559824., 3453833., 3465922., 3478011.,
      3490100., 3521822., 3533988., 3546154., 3558320., 5341881., 5361362.,
      5380843., 5400324., 5449306., 5468908., 5488510., 5508112., 5574017.,
      5594466., 5614915., 5635364., 5685314., 5705884., 5726454., 5747024.,
      3519033., 3532354., 3545675., 3558996., 3590510., 3603908., 3617306.,
      3630704., 5772833., 5794162., 5815491., 5836820., 5877782., 5899188.,
      5920594., 5942000., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704., 5665233., 5687794., 5710355.,
      5732916., 5773670., 5796308., 5818946., 5841584., 5416508., 5440176.,
      5463844., 5487512., 5527810., 5551548., 5575286., 5599024., 8161252.,
      8198592., 8235932., 8273272., 8335570., 8373020., 8410470., 8447920.,
      8213524., 8251232., 8288940., 8326648., 8389314., 8427132., 8464950.,
      8502768., 5169052., 5193328., 5217604., 5241880., 5281570., 5305916.,
      5330262., 5354608., 3919004., 3934496., 3949988., 3965480., 3991750.,
      4007284., 4022818., 4038352., 5699924., 5724240., 5748556., 5772872.,
      5813654., 5838036., 5862418., 5886800., 5603748., 5628080., 5652412.,
      5676744., 5717542., 5741940., 5766338., 5790736., 3372348., 3388000.,
      3403652., 3419304., 3445414., 3461108., 3476802., 3492496.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881., 5361362., 5380843., 5400324., 5449306., 5468908., 5488510.,
      5508112., 5574017., 5594466., 5614915., 5635364., 5685314., 5705884.,
      5726454., 5747024., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3707585., 3733604., 3759721., 3785936., 5917373., 5958260., 5999301.,
      6040496., 6322701., 6364820., 6407093., 6449520., 4059601., 4086404.,
      4113305., 4140304., 4834781., 4870964., 4907301., 4943792., 7032041.,
      7087364., 7142929., 7198736., 6730617., 6785828., 6841281., 6896976.,
      3829805., 3863636., 3897621., 3931760., 4920461., 4960788., 5001269.,
      5041904., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 4479965., 4517940., 4556069., 4594352., 4309662.,
      4343704., 4377886., 4412208., 6568870., 6620536., 6672422., 6724528.,
      6703942., 6754808., 6805894., 6857200., 4243134., 4274200., 4305406.,
      4336752., 1720914., 1739304., 1757778., 1776336., 2551434., 2580040.,
      2608778., 2637648., 2576618., 2605768., 2635050., 2664464., 1572914.,
      1591464., 1610098., 1628816.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828.,
      6841281., 6896976., 7384921., 7446756., 7508833., 7571152.,
      7443945., 7505668., 7567633., 7629840.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2786961., 2796418., 2820006., 2829512., 2853247., 2862802., 2886684.,
      2896288., 4368133., 4383610., 4420646., 4436200., 4473467., 4489098.,
      4526596., 4542304., 4710613., 4727322., 4765590., 4782376., 4820875.,
      4837738., 4876468., 4893408., 3000977., 3012002., 3036614., 3047688.,
      3072447., 3083570., 3108476., 3119648., 4157333., 4174266., 4210678.,
      4227688., 4264331., 4281418., 4318292., 4335456., 6136345., 6162386.,
      6217686., 6243848., 6299511., 6325794., 6381820., 6408224., 6115241.,
      6141170., 6196358., 6222408., 6277959., 6304130., 6360044., 6386336.,
      3740821., 3756634., 3790486., 3806376., 3840459., 3856426., 3890740.,
      3906784., 5807301., 5828378., 5868934., 5890088., 5930875., 5952106.,
      5993124., 6014432., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 4406213., 4426170., 4464166.,
      4484200., 4522427., 4542538., 4580996., 4601184., 3697306., 3715388.,
      3749960., 3768112., 3802894., 3821116., 3856108., 3874400., 5527554.,
      5555020., 5607224., 5634800., 5687334., 5715020., 5767884., 5795680.,
      5683810., 5710476., 5761880., 5788656., 5840390., 5867276., 5919340.,
      5946336., 3667482., 3683708., 3715208., 3731504., 3763214., 3779580.,
      3811500., 3827936., 3409862., 3422372., 3445576., 3458128., 3481458.,
      3494052., 3517508., 3530144., 5047134., 5067028., 5103256., 5123216.,
      5159642., 5179668., 5216292., 5236384., 5080574., 5101012., 5137784.,
      5158288., 5195258., 5215828., 5252996., 5273632., 3132486., 3145828.,
      3169544., 3182928., 3206770., 3220196., 3244164., 3257632.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2481713., 2491170., 2500627., 2510084., 2532906., 2542412., 2551918.,
      2561424., 2584491., 2594046., 2603601., 2613156., 2636468., 2646072.,
      2655676., 2665280., 3868565., 3884042., 3899519., 3914996., 3950474.,
      3966028., 3981582., 3997136., 4032999., 4048630., 4064261., 4079892.,
      4116140., 4131848., 4147556., 4163264., 4183653., 4200362., 4217071.,
      4233780., 4270490., 4287276., 4304062., 4320848., 4357943., 4374806.,
      4391669., 4408532., 4446012., 4462952., 4479892., 4496832., 2765329.,
      2776354., 2787379., 2798404., 2822218., 2833292., 2844366., 2855440.,
      2879499., 2890622., 2901745., 2912868., 2937172., 2948344., 2959516.,
      2970688., 4555525., 4572458., 4589391., 4606324., 4643194., 4660204.,
      4677214., 4694224., 4731479., 4748566., 4765653., 4782740., 4820380.,
      4837544., 4854708., 4871872., 7203961., 7230002., 7256043., 7282084.,
      7337338., 7363500., 7389662., 7415824., 7471683., 7497966., 7524249.,
      7550532., 7606996., 7633400., 7659804., 7686208., 6694921., 6720850.,
      6746779., 6772708., 6827850., 6853900., 6879950., 6906000., 6961747.,
      6987918., 7014089., 7040260., 7096612., 7122904., 7149196., 7175488.,
      3663205., 3679018., 3694831., 3710644., 3744538., 3760428., 3776318.,
      3792208., 3826487., 3842454., 3858421., 3874388., 3909052., 3925096.,
      3941140., 3957184., 5401909., 5422986., 5444063., 5465140., 5506154.,
      5527308., 5548462., 5569616., 5611015., 5632246., 5653477., 5674708.,
      5716492., 5737800., 5759108., 5780416., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 4359061., 4379018., 4398975., 4418932., 4456970., 4477004.,
      4497038., 4517072., 4555495., 4575606., 4595717., 4615828., 4654636.,
      4674824., 4695012., 4715200., 4225682., 4243764., 4261846., 4279928.,
      4315560., 4333712., 4351864., 4370016., 4405998., 4424220., 4442442.,
      4460664., 4496996., 4515288., 4533580., 4551872., 6303930., 6331396.,
      6358862., 6386328., 6439608., 6467184., 6494760., 6522336., 6576166.,
      6603852., 6631538., 6659224., 6713604., 6741400., 6769196., 6796992.,
      6502554., 6529220., 6555886., 6582552., 6635032., 6661808., 6688584.,
      6715360., 6768390., 6795276., 6822162., 6849048., 6902628., 6929624.,
      6956620., 6983616., 4451538., 4467764., 4483990., 4500216., 4532584.,
      4548880., 4565176., 4581472., 4614190., 4630556., 4646922., 4663288.,
      4696356., 4712792., 4729228., 4745664., 3262126., 3274636., 3287146.,
      3299656., 3323272., 3335824., 3348376., 3360928., 3384754., 3397348.,
      3409942., 3422536., 3446572., 3459208., 3471844., 3484480., 4618502.,
      4638396., 4658290., 4678184., 4714296., 4734256., 4754216., 4774176.,
      4810618., 4830644., 4850670., 4870696., 4907468., 4927560., 4947652.,
      4967744., 4684838., 4705276., 4725714., 4746152., 4782808., 4803312.,
      4823816., 4844320., 4881306., 4901876., 4922446., 4943016., 4980332.,
      5000968., 5021604., 5042240., 2785902., 2799244., 2812586., 2825928.,
      2849224., 2862608., 2875992., 2889376., 2912882., 2926308., 2939734.,
      2953160., 2976876., 2990344., 3003812., 3017280.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832.};
  const std::array<int, 4> in_shape = {{1, 18, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      288148.,  406483., 432047.,  276801.,  620092., 856317.,  885841.,
      558327.,  972092., 1328701., 1358225., 849079., 1049100., 1424555.,
      1448975., 899605., 422212.,  562969.,  571813., 345863.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {848936., 878460., 1321320., 1350844.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      573356.,  576296.,  808731.,  812966.,  859551.,  864094.,  550613.,
      553602.,  1232748., 1240184., 1702107., 1712634., 1760671., 1771682.,
      1109493., 1116654., 1931116., 1944184., 2639131., 2657402., 2697695.,
      2716450., 1686069., 1698158., 2081840., 2098200., 2826340., 2849110.,
      2874740., 2897950., 1784300., 1799210., 833072.,  844424.,  1110164.,
      1125938., 1127588., 1143626., 681436.,  691726.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1687466., 1697872., 1746030.,
                                         1756920., 2624490., 2642640.,
                                         2683054., 2701688.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1143772., 1146712., 1149652., 1152592., 1613227., 1617462., 1621697.,
      1625932., 1714559., 1719102., 1723645., 1728188., 1098237., 1101226.,
      1104215., 1107204., 2458060., 2465496., 2472932., 2480368., 3393687.,
      3404214., 3414741., 3425268., 3510331., 3521342., 3532353., 3543364.,
      2211825., 2218986., 2226147., 2233308., 3849164., 3862232., 3875300.,
      3888368., 5259991., 5278262., 5296533., 5314804., 5376635., 5395390.,
      5414145., 5432900., 3360049., 3372138., 3384227., 3396316., 4147320.,
      4163680., 4180040., 4196400., 5629910., 5652680., 5675450., 5698220.,
      5726270., 5749480., 5772690., 5795900., 3553690., 3568600., 3583510.,
      3598420., 1654792., 1666144., 1677496., 1688848., 2204554., 2220328.,
      2236102., 2251876., 2239138., 2255176., 2271214., 2287252., 1352582.,
      1362872., 1373162., 1383452.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526., 3374932., 3385338., 3395744., 3481170., 3492060.,
      3502950., 3513840., 5230830., 5248980., 5267130., 5285280.,
      5347474., 5366108., 5384742., 5403376.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1137304., 1152592., 1604757., 1625932., 1706397., 1728188., 1093337.,
      1107204., 2454584., 2480368., 3389573., 3425268., 3506701., 3543364.,
      2209977., 2233308., 3851320., 3888368., 5263621., 5314804., 5380749.,
      5432900., 3363129., 3396316., 4154640., 4196400., 5640580., 5698220.,
      5737380., 5795900., 3561180., 3598420., 1662832., 1688848., 2215972.,
      2251876., 2250820., 2287252., 1360268., 1383452.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3360291., 3395744., 3477419.,
                                         3513840., 5234339., 5285280.,
                                         5351467., 5403376.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2268784.,  2274608.,  2299304.,  2305184.,  3201121.,  3209514.,
      3243394.,  3251864.,  3403785.,  3412794.,  3447290.,  3456376.,
      2180745.,  2186674.,  2208430.,  2214408.,  4894384.,  4909168.,
      4945864.,  4960736.,  6758213.,  6779146.,  6829482.,  6850536.,
      6991501.,  7013402.,  7064706.,  7086728.,  4405709.,  4419954.,
      4452294.,  4466616.,  7676592.,  7702640.,  7750600.,  7776736.,
      10490821., 10527242., 10593066., 10629608., 10724109., 10761498.,
      10828290., 10865800., 6702157.,  6726258.,  6768454.,  6792632.,
      8276640.,  8309280.,  8360080.,  8392800.,  11235730., 11281160.,
      11350900., 11396440., 11428450., 11474760., 11545380., 11591800.,
      7092610.,  7122360.,  7167020.,  7196840.,  3303008.,  3325664.,
      3354992.,  3377696.,  4400462.,  4431944.,  4472204.,  4503752.,
      4469630.,  4501640.,  4542428.,  4574504.,  2699998.,  2720536.,
      2746324.,  2766904.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1699360., 1705184., 1711008., 1716832., 1738840., 1744720., 1750600.,
      1756480., 2367993., 2376386., 2384779., 2393172., 2423278., 2431748.,
      2440218., 2448688., 2539233., 2548242., 2557251., 2566260., 2596982.,
      2606068., 2615154., 2624240., 1613801., 1619730., 1625659., 1631588.,
      1651202., 1657180., 1663158., 1669136., 4189088., 4203872., 4218656.,
      4233440., 4270456., 4285328., 4300200., 4315072., 5734085., 5755018.,
      5775951., 5796884., 5847318., 5868372., 5889426., 5910480., 5966221.,
      5988122., 6010023., 6031924., 6083326., 6105348., 6127370., 6149392.,
      3761653., 3775898., 3790143., 3804388., 3836826., 3851148., 3865470.,
      3879792., 6989728., 7015776., 7041824., 7067872., 7116152., 7142288.,
      7168424., 7194560., 9448261., 9484682., 9521103., 9557524., 9623446.,
      9659988., 9696530., 9733072., 9680397., 9717786., 9755175., 9792564.,
      9859454., 9896964., 9934474., 9971984., 6050933., 6075034., 6099135.,
      6123236., 6165530., 6189708., 6213886., 6238064., 5455296., 5479744.,
      5504192., 5528640., 5571920., 5596448., 5620976., 5645504., 7390638.,
      7424804., 7458970., 7493136., 7552260., 7586536., 7620812., 7655088.,
      7586782., 7621828., 7656874., 7691920., 7751924., 7787080., 7822236.,
      7857392., 4815566., 4838148., 4860730., 4883312., 4921308., 4943960.,
      4966612., 4989264., 2858048., 2872512., 2886976., 2901440., 2928176.,
      2942688., 2957200., 2971712., 3791778., 3811996., 3832214., 3852432.,
      3889116., 3909400., 3929684., 3949968., 3921394., 3942140., 3962886.,
      3983632., 4020844., 4041656., 4062468., 4083280., 2361730., 2375100.,
      2388470., 2401840., 2425668., 2439080., 2452492., 2465904.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4518808., 4549216., 4579736., 4610368., 6376909., 6419028., 6461301.,
      6503728., 6782237., 6825588., 6869093., 6912752., 4345761., 4373348.,
      4401033., 4428816., 4569208., 4608224., 4647416., 4686784., 6441633.,
      6495764., 6550137., 6604752., 6908209., 6964276., 7020585., 7077136.,
      4395909., 4431588., 4467421., 4503408., 5726328., 5771488., 5816824.,
      5862336., 7981985., 8044564., 8107385., 8170448., 8448561., 8513076.,
      8577833., 8642832., 5333125., 5374180., 5415389., 5456752., 4034288.,
      4068416., 4102704., 4137152., 5664010., 5711376., 5758962., 5806768.,
      6049450., 6098576., 6147922., 6197488., 3834194., 3865456., 3896858.,
      3928400., 1389328., 1408448., 1427664., 1446976., 1898710., 1925264.,
      1951950., 1978768., 2037046., 2064656., 2092398., 2120272., 1237390.,
      1254960., 1272614., 1290352.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148.,
      6902973., 6959040., 7865341., 7927436., 7989773., 8052352.,
      8331917., 8395948., 8460221., 8524736.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3382760., 3394352., 3422016., 3433664., 3461496., 3473200., 3501200.,
      3512960., 4714581., 4731290., 4769558., 4786344., 4824843., 4841706.,
      4880436., 4897376., 5057061., 5075002., 5114502., 5132520., 5172251.,
      5190346., 5230308., 5248480., 3214113., 3225922., 3251318., 3263176.,
      3288719., 3300626., 3326316., 3338272., 4264392., 4281584., 4320832.,
      4338112., 4377624., 4394992., 4434768., 4452224., 6015537., 6040386.,
      6094494., 6119464., 6173935., 6199026., 6253860., 6279072., 6479809.,
      6506594., 6562638., 6589544., 6645951., 6672978., 6729748., 6756896.,
      4226061., 4243722., 4279422., 4297160., 4333091., 4350906., 4387068.,
      4404960., 5786056., 5809392., 5854784., 5878208., 5923864., 5947376.,
      5993296., 6016896., 7908145., 7941442., 8003998., 8037416., 8100335.,
      8133874., 8197156., 8230816., 8372417., 8407650., 8472142., 8507496.,
      8572351., 8607826., 8673044., 8708640., 5177613., 5200650., 5241726.,
      5264840., 5306147., 5329338., 5370876., 5394144., 3781424., 3797472.,
      3832192., 3848320., 3883280., 3899488., 3934688., 3950976., 5323670.,
      5346836., 5394740., 5418016., 5466250., 5489636., 5538200., 5561696.,
      5715958., 5740884., 5790548., 5815584., 5865578., 5890724., 5941048.,
      5966304., 3738238., 3754660., 3786356., 3802848., 3834754., 3851316.,
      3883432., 3900064., 2672976., 2685472., 2710144., 2722688., 2747504.,
      2760096., 2785056., 2797696., 3670010., 3687852., 3722028., 3739936.,
      3774310., 3792284., 3826856., 3844896., 3929242., 3948140., 3983372.,
      4002336., 4037766., 4056796., 4092424., 4111520., 2462418., 2474780.,
      2497516., 2509920., 2532782., 2545228., 2568216., 2580704.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3024008., 3035600., 3047192., 3058784., 3085568., 3097216., 3108864.,
      3120512., 3147576., 3159280., 3170984., 3182688., 3210032., 3221792.,
      3233552., 3245312., 4177253., 4193962., 4210671., 4227380., 4264090.,
      4280876., 4297662., 4314448., 4351543., 4368406., 4385269., 4402132.,
      4439612., 4456552., 4473492., 4490432., 4492341., 4510282., 4528223.,
      4546164., 4584106., 4602124., 4620142., 4638160., 4676487., 4694582.,
      4712677., 4730772., 4769484., 4787656., 4805828., 4824000., 2961441.,
      2973250., 2985059., 2996868., 3021466., 3033324., 3045182., 3057040.,
      3081883., 3093790., 3105697., 3117604., 3142692., 3154648., 3166604.,
      3178560., 4508776., 4525968., 4543160., 4560352., 4600064., 4617344.,
      4634624., 4651904., 4692056., 4709424., 4726792., 4744160., 4784752.,
      4802208., 4819664., 4837120., 6115665., 6140514., 6165363., 6190212.,
      6244274., 6269244., 6294214., 6319184., 6373851., 6398942., 6424033.,
      6449124., 6504396., 6529608., 6554820., 6580032., 6575329., 6602114.,
      6628899., 6655684., 6711682., 6738588., 6765494., 6792400., 6849003.,
      6876030., 6903057., 6930084., 6987292., 7014440., 7041588., 7068736.,
      4115741., 4133402., 4151063., 4168724., 4204466., 4222204., 4239942.,
      4257680., 4293807., 4311622., 4329437., 4347252., 4383764., 4401656.,
      4419548., 4437440., 5710952., 5734288., 5757624., 5780960., 5826816.,
      5850240., 5873664., 5897088., 5943384., 5966896., 5990408., 6013920.,
      6060656., 6084256., 6107856., 6131456., 7664209., 7697506., 7730803.,
      7764100., 7826610., 7860028., 7893446., 7926864., 7989979., 8023518.,
      8057057., 8090596., 8154316., 8187976., 8221636., 8255296., 8123873.,
      8159106., 8194339., 8229572., 8294018., 8329372., 8364726., 8400080.,
      8465131., 8500606., 8536081., 8571556., 8637212., 8672808., 8708404.,
      8744000., 5095965., 5119002., 5142039., 5165076., 5206194., 5229308.,
      5252422., 5275536., 5317039., 5340230., 5363421., 5386612., 5428500.,
      5451768., 5475036., 5498304., 4129712., 4145760., 4161808., 4177856.,
      4213760., 4229888., 4246016., 4262144., 4298448., 4314656., 4330864.,
      4347072., 4383776., 4400064., 4416352., 4432640., 5595310., 5618476.,
      5641642., 5664808., 5713788., 5737064., 5760340., 5783616., 5833146.,
      5856532., 5879918., 5903304., 5953384., 5976880., 6000376., 6023872.,
      6001294., 6026220., 6051146., 6076072., 6126812., 6151848., 6176884.,
      6201920., 6253210., 6278356., 6303502., 6328648., 6380488., 6405744.,
      6431000., 6456256., 3775702., 3792124., 3808546., 3824968., 3857532.,
      3874024., 3890516., 3907008., 3939922., 3956484., 3973046., 3989608.,
      4022872., 4039504., 4056136., 4072768., 2933712., 2946208., 2958704.,
      2971200., 2996224., 3008768., 3021312., 3033856., 3059120., 3071712.,
      3084304., 3096896., 3122400., 3135040., 3147680., 3160320., 3906114.,
      3923956., 3941798., 3959640., 3993700., 4011608., 4029516., 4047424.,
      4081814., 4099788., 4117762., 4135736., 4170456., 4188496., 4206536.,
      4224576., 4161378., 4180276., 4199174., 4218072., 4253188., 4272152.,
      4291116., 4310080., 4345526., 4364556., 4383586., 4402616., 4438392.,
      4457488., 4476584., 4495680., 2550618., 2562980., 2575342., 2587704.,
      2610020., 2622424., 2634828., 2647232., 2669758., 2682204., 2694650.,
      2707096., 2729832., 2742320., 2754808., 2767296.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824.};
  const std::array<int, 4> in_shape = {{1, 18, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280574., 445214.,  470778.,  445830.,  268366.,  608762.,  949366.,
      978890., 907500.,  538208.,  958034.,  1480798., 1510322., 1386660.,
      816200., 1036350., 1591040., 1615460., 1475925., 862975.,  419538.,
      629112., 637956.,  578655.,  329469.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {949366., 978890., 1480798., 1510322.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      558306.,  561148.,  885808.,  890428.,  936628.,  941556.,  886935.,
      891660.,  533813.,  536732.,  1210286., 1217524., 1887116., 1898732.,
      1945680., 1957780., 1803615., 1815000., 1069453., 1076416., 1903286.,
      1916068., 2941268., 2961596., 2999832., 3020644., 2754015., 2773320.,
      1620685., 1632400., 2056670., 2072700., 3156670., 3182080., 3205070.,
      3230920., 2928000., 2951850., 1711520., 1725950., 827946.,  839076.,
      1240602., 1258224., 1258026., 1275912., 1140840., 1157310., 648984.,
      658938.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {1887116., 1898732., 1945680.,
                                         1957780., 2941268., 2961596.,
                                         2999832., 3020644.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1113770., 1116612., 1119454., 1122296., 1766996., 1771616., 1776236.,
      1780856., 1868328., 1873256., 1878184., 1883112., 1769145., 1773870.,
      1778595., 1783320., 1064707., 1067626., 1070545., 1073464., 2413334.,
      2420572., 2427810., 2435048., 3762616., 3774232., 3785848., 3797464.,
      3879260., 3891360., 3903460., 3915560., 3595845., 3607230., 3618615.,
      3630000., 2131943., 2138906., 2145869., 2152832., 3793790., 3806572.,
      3819354., 3832136., 5862208., 5882536., 5902864., 5923192., 5978852.,
      5999664., 6020476., 6041288., 5488725., 5508030., 5527335., 5546640.,
      3229655., 3241370., 3253085., 3264800., 4097310., 4113340., 4129370.,
      4145400., 6287930., 6313340., 6338750., 6364160., 6384290., 6410140.,
      6435990., 6461840., 5832150., 5856000., 5879850., 5903700., 3408610.,
      3423040., 3437470., 3451900., 1644762., 1655892., 1667022., 1678152.,
      2463582., 2481204., 2498826., 2516448., 2498166., 2516052., 2533938.,
      2551824., 2265210., 2281680., 2298150., 2314620., 1288014., 1297968.,
      1307922., 1317876.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616., 3774232., 3785848., 3797464., 3879260., 3891360.,
      3903460., 3915560., 5862208., 5882536., 5902864., 5923192.,
      5978852., 5999664., 6020476., 6041288.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1108331., 1122296., 1758911., 1780856., 1860551., 1883112., 1762390.,
      1783320., 1060906., 1073464., 2410947., 2435048., 3759591., 3797464.,
      3876719., 3915560., 3594030., 3630000., 2131250., 2152832., 3796947.,
      3832136., 5867895., 5923192., 5985023., 6041288., 5494830., 5546640.,
      3233714., 3264800., 4105360., 4145400., 6301240., 6364160., 6398040.,
      6461840., 5845100., 5903700., 3416740., 3451900., 1652952., 1678152.,
      2476848., 2516448., 2511696., 2551824., 2277780., 2314620., 1295772.,
      1317876.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {3759591., 3797464., 3876719.,
                                         3915560., 5867895., 5923192.,
                                         5985023., 6041288.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2211027.,  2216662.,  2238908.,  2244592.,  3508659.,  3517822.,
      3552472.,  3561712.,  3711323.,  3721102.,  3756368.,  3766224.,
      3515400.,  3524780.,  3557190.,  3566640.,  2116016.,  2121812.,
      2141090.,  2146928.,  4807495.,  4821894.,  4855620.,  4870096.,
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  7165400.,  7188060.,  7237230.,  7260000.,
      4248640.,  4262500.,  4291738.,  4305664.,  7568407.,  7593894.,
      7638708.,  7664272.,  11695255., 11735790., 11805728., 11846384.,
      11928543., 11970046., 12040952., 12082576., 10951160., 10989660.,
      11054670., 11093280., 6444064.,  6467428.,  6506170.,  6529600.,
      8178730.,  8210720.,  8258740.,  8290800.,  12551770., 12602480.,
      12677500., 12728320., 12744490., 12796080., 12871980., 12923680.,
      11642600., 11690200., 11759700., 11807400., 6804680.,  6833480.,
      6874940.,  6903800.,  3283686.,  3305904.,  3334044.,  3356304.,
      4918518.,  4953696.,  4997652.,  5032896.,  4987686.,  5023392.,
      5067876.,  5103648.,  4522680.,  4555560.,  4596300.,  4629240.,
      2571672.,  2591544.,  2615844.,  2635752.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  11695255., 11735790., 11805728., 11846384.,
      11928543., 11970046., 12040952., 12082576.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1661347., 1666982., 1672617., 1678252., 1698116., 1703800., 1709484.,
      1715168., 2586011., 2595174., 2604337., 2613500., 2644376., 2653616.,
      2662856., 2672096., 2757251., 2767030., 2776809., 2786588., 2818080.,
      2827936., 2837792., 2847648., 2633068., 2642448., 2651828., 2661208.,
      2690466., 2699916., 2709366., 2718816., 1553596., 1559392., 1565188.,
      1570984., 1588342., 1594180., 1600018., 1605856., 4117583., 4131982.,
      4146381., 4160780., 4194812., 4209288., 4223764., 4238240., 6344391.,
      6367502., 6390613., 6413724., 6466336., 6489568., 6512800., 6536032.,
      6576527., 6600606., 6624685., 6648764., 6702344., 6726544., 6750744.,
      6774944., 6159660., 6182320., 6204980., 6227640., 6277098., 6299868.,
      6322638., 6345408., 3598940., 3612800., 3626660., 3640520., 3669710.,
      3683636., 3697562., 3711488., 6223007., 6246958., 6270909., 6294860.,
      6338444., 6362472., 6386500., 6410528., 8999639., 9036590., 9073541.,
      9110492., 9176944., 9214016., 9251088., 9288160., 8451487., 8487358.,
      8523229., 8559100., 8624472., 8660464., 8696456., 8732448., 7881612.,
      7914992., 7948372., 7981752., 8041930., 8075420., 8108910., 8142400.,
      4573436., 4593728., 4614020., 4634312., 4669934., 4690292., 4710650.,
      4731008., 4920158., 4939860., 4959562., 4979264., 5015596., 5035368.,
      5055140., 5074912., 7536286., 7566516., 7596746., 7626976., 7682164.,
      7712504., 7742844., 7773184., 7673038., 7702100., 7731162., 7760224.,
      7814244., 7843416., 7872588., 7901760., 7230944., 7258064., 7285184.,
      7312304., 7362132., 7389352., 7416572., 7443792., 4278544., 4295056.,
      4311568., 4328080., 4357564., 4374136., 4390708., 4407280., 1650434.,
      1660364., 1670294., 1680224., 1700932., 1710904., 1720876., 1730848.,
      2203778., 2218476., 2233174., 2247872., 2279036., 2293800., 2308564.,
      2323328., 1946322., 1959500., 1972678., 1985856., 2015500., 2028744.,
      2041988., 2055232., 1877760., 1890160., 1902560., 1914960., 1942508.,
      1954968., 1967428., 1979888., 1080720., 1088304., 1095888., 1103472.,
      1119876., 1127496., 1135116., 1142736.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391., 6367502., 6390613., 6413724., 6466336., 6489568., 6512800.,
      6536032., 6576527., 6600606., 6624685., 6648764., 6702344., 6726544.,
      6750744., 6774944., 8999639., 9036590., 9073541., 9110492., 9176944.,
      9214016., 9251088., 9288160., 8451487., 8487358., 8523229., 8559100.,
      8624472., 8660464., 8696456., 8732448.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4405541., 4433324., 4461205., 4489184., 6991985., 7035644., 7079457.,
      7123424., 7397313., 7442204., 7487249., 7532448., 7007910., 7049560.,
      7091350., 7133280., 4218634., 4243624., 4268698., 4293856., 4153257.,
      4187916., 4222729., 4257696., 6382885., 6436764., 6490885., 6545248.,
      6530997., 6585788., 6640821., 6696096., 6255870., 6307000., 6358350.,
      6409920., 3751154., 3781832., 3812642., 3843584., 5507913., 5548876.,
      5589993., 5631264., 7986501., 8049116., 8111973., 8175072., 7399381.,
      7460860., 7522581., 7584544., 7033150., 7090360., 7147790., 7205440.,
      4188338., 4222664., 4257122., 4291712., 3647042., 3678784., 3710666.,
      3742688., 5393050., 5441760., 5490690., 5539840., 5223482., 5271904.,
      5320546., 5369408., 5005580., 5050800., 5096220., 5141840., 2986132.,
      3013264., 3040516., 3067888., 1176318., 1192800., 1209366., 1226016.,
      1653798., 1678528., 1703390., 1728384., 1597574., 1621312., 1645182.,
      1669184., 1531700., 1554000., 1576420., 1598960., 881196.,  894576.,
      908028.,  921552.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788.,
      6640821., 6696096., 7986501., 8049116., 8111973., 8175072.,
      7399381., 7460860., 7522581., 7584544.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3308661., 3319882., 3345234., 3356504., 3382003., 3393322., 3418968.,
      3430336., 5150617., 5168866., 5208674., 5227000., 5267039., 5285442.,
      5325712., 5344192., 5493097., 5512578., 5553618., 5573176., 5614447.,
      5634082., 5675584., 5695296., 5246538., 5265228., 5303656., 5322416.,
      5361054., 5379884., 5418732., 5437632., 3095798., 3107348., 3130376.,
      3141968., 3165122., 3176756., 3200036., 3211712., 4159777., 4175186.,
      4210074., 4225560., 4260679., 4276242., 4311592., 4327232., 6531125.,
      6555722., 6609578., 6634296., 6688515., 6713354., 6767936., 6792896.,
      6883781., 6909290., 6964058., 6989688., 7044819., 7070570., 7126064.,
      7151936., 6701922., 6726652., 6777960., 6802800., 6854438., 6879388.,
      6931356., 6956416., 4024798., 4040164., 4070728., 4086160., 4116922.,
      4132420., 4163380., 4178944., 5076929., 5098642., 5139834., 5161624.,
      5203047., 5224914., 5266568., 5288512., 7091797., 7125130., 7187722.,
      7221176., 7284131., 7317706., 7381024., 7414720., 6500325., 6532522.,
      6593978., 6626296., 6688115., 6720554., 6782736., 6815296., 6235170.,
      6265980., 6323368., 6354288., 6412006., 6443036., 6501084., 6532224.,
      3617566., 3636580., 3670792., 3689872., 3724282., 3743428., 3778036.,
      3797248., 4266718., 4282500., 4314772., 4330624., 4363106., 4379028.,
      4411720., 4427712., 6693238., 6717748., 6766996., 6791616., 6841194.,
      6865924., 6915832., 6940672., 7026134., 7050356., 7099316., 7123648.,
      7172938., 7197380., 7247000., 7271552., 6806684., 6830104., 6876032.,
      6899552., 6945780., 6969400., 7015928., 7039648., 4102244., 4116776.,
      4144160., 4158752., 4186316., 4200968., 4228712., 4243424., 2113682.,
      2124284., 2145580., 2156224., 2177646., 2188332., 2209880., 2220608.,
      3046842., 3062860., 3095212., 3111296., 3143846., 3159996., 3192744.,
      3208960., 2919002., 2934028., 2965388., 2980480., 3012038., 3027196.,
      3058952., 3074176., 2911172., 2925672., 2955200., 2969760., 2999468.,
      3014088., 3043976., 3058656., 1753404., 1762392., 1780128., 1789152.,
      1806996., 1816056., 1834008., 1843104.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME1x18x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945813., 2957034., 2968255., 2979476., 3004062., 3015332., 3026602.,
      3037872., 3062703., 3074022., 3085341., 3096660., 3121736., 3133104.,
      3144472., 3155840., 4558313., 4576562., 4594811., 4613060., 4651310.,
      4669636., 4687962., 4706288., 4744923., 4763326., 4781729., 4800132.,
      4839152., 4857632., 4876112., 4894592., 4873401., 4892882., 4912363.,
      4931844., 4971326., 4990884., 5010442., 5030000., 5069867., 5089502.,
      5109137., 5128772., 5169024., 5188736., 5208448., 5228160., 4714898.,
      4733588., 4752278., 4770968., 4808072., 4826832., 4845592., 4864352.,
      4901806., 4920636., 4939466., 4958296., 4996100., 5015000., 5033900.,
      5052800., 2800846., 2812396., 2823946., 2835496., 2857672., 2869264.,
      2880856., 2892448., 2914834., 2926468., 2938102., 2949736., 2972332.,
      2984008., 2995684., 3007360., 3916817., 3932226., 3947635., 3963044.,
      3998390., 4013876., 4029362., 4044848., 4080579., 4096142., 4111705.,
      4127268., 4163384., 4179024., 4194664., 4210304., 5801557., 5826154.,
      5850751., 5875348., 5929158., 5953876., 5978594., 6003312., 6057727.,
      6082566., 6107405., 6132244., 6187264., 6212224., 6237184., 6262144.,
      6039013., 6064522., 6090031., 6115540., 6170262., 6195892., 6221522.,
      6247152., 6302479., 6328230., 6353981., 6379732., 6435664., 6461536.,
      6487408., 6513280., 5974058., 5998788., 6023518., 6048248., 6099912.,
      6124752., 6149592., 6174432., 6226646., 6251596., 6276546., 6301496.,
      6354260., 6379320., 6404380., 6429440., 3417014., 3432380., 3447746.,
      3463112., 3493448., 3508880., 3524312., 3539744., 3570410., 3585908.,
      3601406., 3616904., 3647900., 3663464., 3679028., 3694592., 5531825.,
      5553538., 5575251., 5596964., 5638614., 5660404., 5682194., 5703984.,
      5746019., 5767886., 5789753., 5811620., 5854040., 5875984., 5897928.,
      5919872., 7946357., 7979690., 8013023., 8046356., 8108902., 8142356.,
      8175810., 8209264., 8272415., 8305990., 8339565., 8373140., 8436896.,
      8470592., 8504288., 8537984., 7870469., 7902666., 7934863., 7967060.,
      8028470., 8060788., 8093106., 8125424., 8187439., 8219878., 8252317.,
      8284756., 8347376., 8379936., 8412496., 8445056., 7737834., 7768644.,
      7799454., 7830264., 7888008., 7918928., 7949848., 7980768., 8039062.,
      8070092., 8101122., 8132152., 8190996., 8222136., 8253276., 8284416.,
      4466678., 4485692., 4504706., 4523720., 4557704., 4576784., 4595864.,
      4614944., 4649258., 4668404., 4687550., 4706696., 4741340., 4760552.,
      4779764., 4798976., 3939350., 3955132., 3970914., 3986696., 4020028.,
      4035880., 4051732., 4067584., 4101266., 4117188., 4133110., 4149032.,
      4183064., 4199056., 4215048., 4231040., 5908270., 5932780., 5957290.,
      5981800., 6032124., 6056744., 6081364., 6105984., 6156858., 6181588.,
      6206318., 6231048., 6282472., 6307312., 6332152., 6356992., 6197518.,
      6221740., 6245962., 6270184., 6320220., 6344552., 6368884., 6393216.,
      6443802., 6468244., 6492686., 6517128., 6568264., 6592816., 6617368.,
      6641920., 6167484., 6190904., 6214324., 6237744., 6285088., 6308608.,
      6332128., 6355648., 6403492., 6427112., 6450732., 6474352., 6522696.,
      6546416., 6570136., 6593856., 3606532., 3621064., 3635596., 3650128.,
      3678016., 3692608., 3707200., 3721792., 3749980., 3764632., 3779284.,
      3793936., 3822424., 3837136., 3851848., 3866560., 2924474., 2935076.,
      2945678., 2956280., 2977988., 2988632., 2999276., 3009920., 3031838.,
      3042524., 3053210., 3063896., 3086024., 3096752., 3107480., 3118208.,
      3792098., 3808116., 3824134., 3840152., 3872388., 3888472., 3904556.,
      3920640., 3953206., 3969356., 3985506., 4001656., 4034552., 4050768.,
      4066984., 4083200., 3275266., 3290292., 3305318., 3320344., 3351588.,
      3366680., 3381772., 3396864., 3428438., 3443596., 3458754., 3473912.,
      3505816., 3521040., 3536264., 3551488., 3196132., 3210632., 3225132.,
      3239632., 3269280., 3283840., 3298400., 3312960., 3342908., 3357528.,
      3372148., 3386768., 3417016., 3431696., 3446376., 3461056., 1774428.,
      1783416., 1792404., 1801392., 1818624., 1827648., 1836672., 1845696.,
      1863108., 1872168., 1881228., 1890288., 1907880., 1916976., 1926072.,
      1935168.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID1x18x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056.};
  const std::array<int, 4> in_shape = {{1, 18, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236621.,  377531.,  403095.,  258769.,  510587.,  798721.,  828245.,
      522599.,  801647.,  1241581., 1271105., 795179.,  372057.,  565103.,
      577115.,  353437.,  1173746., 1815506., 1841070., 1151794., 1602062.,
      2459446., 2488970., 1544774., 1893122., 2902306., 2931830., 1817354.,
      824082.,  1240778., 1252790., 761362.,  2110871., 3253481., 3279045.,
      2044819., 2693537., 4120171., 4149695., 2566949., 2984597., 4563031.,
      4592555., 2839529., 1276107., 1916453., 1928465., 1169287.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      798721.,  828245.,  1241581., 1271105., 2459446., 2488970.,
      2902306., 2931830., 4120171., 4149695., 4563031., 4592555.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      470841.,  473242.,  751135.,  755062.,  801955.,  806190.,  514745.,
      517538.,  1015091., 1021174., 1587641., 1597442., 1646205., 1656490.,
      1038499., 1045198., 1592591., 1603294., 2466101., 2483162., 2524665.,
      2542210., 1579039., 1590358., 735833.,  744114.,  1117039., 1130206.,
      1140755., 1154230., 698201.,  706874.,  2334066., 2347492., 3609760.,
      3631012., 3660580., 3682140., 2289770., 2303588., 3180716., 3204124.,
      4881866., 4918892., 4940430., 4977940., 3065524., 3089548., 3758216.,
      3786244., 5760326., 5804612., 5818890., 5863660., 3606064., 3634708.,
      1628858., 1648164., 2451064., 2481556., 2474780., 2505580., 1503026.,
      1522724., 4197291., 4221742., 6468385., 6506962., 6519205., 6558090.,
      4064795., 4089638., 5346341., 5387074., 8176091., 8240342., 8234655.,
      8299390., 5092549., 5133898., 5923841., 5969194., 9054551., 9126062.,
      9113115., 9185110., 5633089., 5679058., 2521883., 2552214., 3785089.,
      3832906., 3808805., 3856930., 2307851., 2338574.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1587641., 1597442., 1646205., 1656490., 2466101., 2483162.,
      2524665., 2542210., 4881866., 4918892., 4940430., 4977940.,
      5760326., 5804612., 5818890., 5863660., 8176091., 8240342.,
      8234655., 8299390., 9054551., 9126062., 9113115., 9185110.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      939281.,   941682.,   944083.,   946484.,   1498343.,  1502270.,
      1506197.,  1510124.,  1599675.,  1603910.,  1608145.,  1612380.,
      1026697.,  1029490.,  1032283.,  1035076.,  2024099.,  2030182.,
      2036265.,  2042348.,  3165481.,  3175282.,  3185083.,  3194884.,
      3282125.,  3292410.,  3302695.,  3312980.,  2070299.,  2076998.,
      2083697.,  2090396.,  3174479.,  3185182.,  3195885.,  3206588.,
      4915141.,  4932202.,  4949263.,  4966324.,  5031785.,  5049330.,
      5066875.,  5084420.,  3146759.,  3158078.,  3169397.,  3180716.,
      1463385.,  1471666.,  1479947.,  1488228.,  2220911.,  2234078.,
      2247245.,  2260412.,  2268035.,  2281510.,  2294985.,  2308460.,
      1387729.,  1396402.,  1405075.,  1413748.,  4654706.,  4668132.,
      4681558.,  4694984.,  7198268.,  7219520.,  7240772.,  7262024.,
      7299600.,  7321160.,  7342720.,  7364280.,  4565722.,  4579540.,
      4593358.,  4607176.,  6338024.,  6361432.,  6384840.,  6408248.,
      9726706.,  9763732.,  9800758.,  9837784.,  9843350.,  9880860.,
      9918370.,  9955880.,  6107024.,  6131048.,  6155072.,  6179096.,
      7488404.,  7516432.,  7544460.,  7572488.,  11476366., 11520652.,
      11564938., 11609224., 11593010., 11637780., 11682550., 11727320.,
      7183484.,  7212128.,  7240772.,  7269416.,  3238410.,  3257716.,
      3277022.,  3296328.,  4871636.,  4902128.,  4932620.,  4963112.,
      4918760.,  4949560.,  4980360.,  5011160.,  2986354.,  3006052.,
      3025750.,  3045448.,  4180435.,  4195158.,  4209881.,  4224604.,
      6216081.,  6238786.,  6261491.,  6284196.,  5953893.,  5975882.,
      5997871.,  6019860.,  3707179.,  3721270.,  3735361.,  3749452.,
      2396973.,  2413642.,  2430311.,  2446980.,  3500731.,  3526582.,
      3552433.,  3578284.,  3434079.,  3459390.,  3484701.,  3510012.,
      2090501.,  2106762.,  2123023.,  2139284.,  2005209.,  2012162.,
      2019115.,  2026068.,  3110231.,  3120814.,  3131397.,  3141980.,
      3223803.,  3233846.,  3243889.,  3253932.,  2034417.,  2040962.,
      2047507.,  2054052.,  974267.,   979510.,   984753.,   989996.,
      1490489.,  1498882.,  1507275.,  1515668.,  1537613.,  1546314.,
      1555015.,  1563716.,  947219.,   952854.,   958489.,   964124.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481.,  3175282.,  3185083.,  3194884.,  3282125.,  3292410.,
      3302695.,  3312980.,  4915141.,  4932202.,  4949263.,  4966324.,
      5031785.,  5049330.,  5066875.,  5084420.,  9726706.,  9763732.,
      9800758.,  9837784.,  9843350.,  9880860.,  9918370.,  9955880.,
      11476366., 11520652., 11564938., 11609224., 11593010., 11637780.,
      11682550., 11727320., 3500731.,  3526582.,  3552433.,  3578284.,
      3434079.,  3459390.,  3484701.,  3510012.,  3110231.,  3120814.,
      3131397.,  3141980.,  3223803.,  3233846.,  3243889.,  3253932.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933401.,  946484.,   1489565.,  1510124.,  1591205.,  1612380., 1021601.,
      1035076., 2020557.,  2042348.,  3160641.,  3194884.,  3277769., 3312980.,
      2067989., 2090396.,  3175557.,  3206588.,  4917561.,  4966324., 5034689.,
      5084420., 3149069.,  3180716.,  1467697.,  1488228.,  2228149., 2260412.,
      2275581., 2308460.,  1392825.,  1413748.,  4659851.,  4694984., 7206815.,
      7262024., 7308455.,  7364280.,  4571651.,  4607176.,  6351807., 6408248.,
      9749091., 9837784.,  9866219.,  9955880.,  6122039.,  6179096., 7506807.,
      7572488., 11506011., 11609224., 11623139., 11727320., 7203119., 7269416.,
      3253747., 3296328.,  4896199.,  4963112.,  4943631.,  5011160., 3002475.,
      3045448., 4186877.,  4224604.,  6226081.,  6284196.,  5963177., 6019860.,
      3713381., 3749452.,  2404017.,  2446980.,  3511941.,  3578284., 3444749.,
      3510012., 2097753.,  2139284.,  2002537.,  2026068.,  3106173., 3141980.,
      3219205., 3253932.,  2031953.,  2054052.,  975541.,   989996.,  1492953.,
      1515668., 1540385.,  1563716.,  949277.,   964124.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3160641.,  3194884.,  3277769.,  3312980.,  4917561., 4966324.,
      5034689.,  5084420.,  9749091.,  9837784.,  9866219., 9955880.,
      11506011., 11609224., 11623139., 11727320., 3511941., 3578284.,
      3444749.,  3510012.,  3106173.,  3141980.,  3219205., 3253932.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1862049.,  1866802.,  1888166., 1892968., 2971353., 2979130.,  3012394.,
      3020248.,  3174017.,  3182410., 3216290., 3224760., 2037665.,  2043202.,
      2064566.,  2070152.,  4029025., 4041114., 4072530., 4084696.,  6301801.,
      6321282.,  6370166.,  6389768., 6535089., 6555538., 6605390.,  6625960.,
      4122657.,  4135978.,  4167394., 4180792., 6329785., 6351114.,  6391770.,
      6413176.,  9801121.,  9835122., 9898526., 9932648., 10034409., 10069378.,
      10133750., 10168840., 6275577., 6298138., 6338794., 6361432.,  2918881.,
      2935394.,  2959894.,  2976456., 4430041., 4456298., 4494490.,  4520824.,
      4524289.,  4551162.,  4589970., 4616920., 2768353., 2785650.,  2810150.,
      2827496.,  2609251.,  2618646., 2644652., 2654096., 4003203.,  4017982.,
      4058248.,  4073104.,  4070187., 4085070., 4125440., 4140400.,  2574915.,
      2584582.,  2610076.,  2619792., 3259627., 3274622., 3308944.,  3324016.,
      5023739.,  5047494.,  5100652., 5124528., 5211459., 5235670.,  5289284.,
      5313616.,  3261195.,  3276910., 3310720., 3326512., 5141059.,  5157614.,
      5193496.,  5210128.,  7993139., 8019638., 8075540., 8102160.,  8226427.,
      8253894.,  8310764.,  8338352., 5163235., 5181022., 5216904.,  5234768.,
      2429763.,  2443238.,  2464700., 2478224., 3699619., 3721102.,  3754520.,
      3776080.,  3793867.,  3815966., 3850000., 3872176., 2327843.,  2342102.,
      2363564.,  2377872.,  4079397., 4093434., 4124082., 4138168.,  6118445.,
      6140226.,  6187494.,  6209352., 5957589., 5978962., 6025822.,  6047272.,
      3742949.,  3756746.,  3786370., 3800216., 3213173., 3231074.,  3268302.,
      3286280.,  4829069.,  4857098., 4914530., 4942680., 4879061.,  4907034.,
      4964410.,  4992504.,  3030517., 3048626., 3084830., 3103016.,  3971789.,
      3984594.,  4016726.,  4029608., 6188229., 6208250., 6257674.,  6277816.,
      6418445.,  6438410.,  6487778., 6507864., 4050893., 4063906.,  4095014.,
      4108104.,  1940645.,  1951082., 1969506., 1979992., 2969197.,  2985906.,
      3014550.,  3031336.,  3063445., 3080770., 3110030., 3127432.,  1887333.,
      1898554.,  1916978.,  1928248.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166., 6389768., 6535089., 6555538.,  6605390.,
      6625960.,  9801121.,  9835122., 9898526., 9932648., 10034409., 10069378.,
      10133750., 10168840., 5023739., 5047494., 5100652., 5124528.,  5211459.,
      5235670.,  5289284.,  5313616., 7993139., 8019638., 8075540.,  8102160.,
      8226427.,  8253894.,  8310764., 8338352., 4829069., 4857098.,  4914530.,
      4942680.,  4879061.,  4907034., 4964410., 4992504., 6188229.,  6208250.,
      6257674.,  6277816.,  6418445., 6438410., 6487778., 6507864.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1400497., 1405250., 1410003., 1414756., 1433738., 1438540., 1443342.,
      1448144., 2194769., 2202546., 2210323., 2218100., 2247590., 2255444.,
      2263298., 2271152., 2366009., 2374402., 2382795., 2391188., 2421294.,
      2429764., 2438234., 2446704., 1507233., 1512770., 1518307., 1523844.,
      1543066., 1548652., 1554238., 1559824., 3453833., 3465922., 3478011.,
      3490100., 3521822., 3533988., 3546154., 3558320., 5341881., 5361362.,
      5380843., 5400324., 5449306., 5468908., 5488510., 5508112., 5574017.,
      5594466., 5614915., 5635364., 5685314., 5705884., 5726454., 5747024.,
      3519033., 3532354., 3545675., 3558996., 3590510., 3603908., 3617306.,
      3630704., 5772833., 5794162., 5815491., 5836820., 5877782., 5899188.,
      5920594., 5942000., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704., 5665233., 5687794., 5710355.,
      5732916., 5773670., 5796308., 5818946., 5841584., 3879233., 3895746.,
      3912259., 3928772., 3956602., 3973164., 3989726., 4006288., 5986593.,
      6012850., 6039107., 6065364., 6108758., 6135092., 6161426., 6187760.,
      6121225., 6148098., 6174971., 6201844., 6245854., 6272804., 6299754.,
      6326704., 3931697., 3948994., 3966291., 3983588., 4011658., 4029004.,
      4046350., 4063696., 3278355., 3287750., 3297145., 3306540., 3330164.,
      3339608., 3349052., 3358496., 5274443., 5289222., 5304001., 5318780.,
      5355272., 5370128., 5384984., 5399840., 5436979., 5451862., 5466745.,
      5481628., 5518224., 5533184., 5548144., 5563104., 3688643., 3698310.,
      3707977., 3717644., 3740996., 3750712., 3760428., 3770144., 3086659.,
      3101654., 3116649., 3131644., 3166272., 3181344., 3196416., 3211488.,
      4590891., 4614646., 4638401., 4662156., 4715412., 4739288., 4763164.,
      4787040., 4732403., 4756614., 4780825., 4805036., 4858748., 4883080.,
      4907412., 4931744., 2904755., 2920470., 2936185., 2951900., 2985808.,
      3001600., 3017392., 3033184., 4574683., 4591238., 4607793., 4624348.,
      4660536., 4677168., 4693800., 4710432., 7024867., 7051366., 7077865.,
      7104364., 7160364., 7186984., 7213604., 7240224., 7257003., 7284470.,
      7311937., 7339404., 7396372., 7423960., 7451548., 7479136., 4556363.,
      4574150., 4591937., 4609724., 4645704., 4663568., 4681432., 4699296.,
      3189731., 3203206., 3216681., 3230156., 3254948., 3268472., 3281996.,
      3295520., 4943195., 4964678., 4986161., 5007644., 5046264., 5067824.,
      5089384., 5110944., 5077827., 5099926., 5122025., 5144124., 5183360.,
      5205536., 5227712., 5249888., 3275923., 3290182., 3304441., 3318700.,
      3343732., 3358040., 3372348., 3386656., 3456373., 3470410., 3484447.,
      3498484., 3526750., 3540836., 3554922., 3569008., 5278021., 5299802.,
      5321583., 5343364., 5386858., 5408716., 5430574., 5452432., 5247533.,
      5268906., 5290279., 5311652., 5354738., 5376188., 5397638., 5419088.,
      3461605., 3475402., 3489199., 3502996., 3530478., 3544324., 3558170.,
      3572016., 4165373., 4183274., 4201175., 4219076., 4256610., 4274588.,
      4292566., 4310544., 6006685., 6034714., 6062743., 6090772., 6148302.,
      6176452., 6204602., 6232752., 5873253., 5901226., 5929199., 5957172.,
      6014646., 6042740., 6070834., 6098928., 3552045., 3570154., 3588263.,
      3606372., 3642674., 3660860., 3679046., 3697232., 3414421., 3427226.,
      3440031., 3452836., 3485274., 3498156., 3511038., 3523920., 5230933.,
      5250954., 5270975., 5290996., 5340518., 5360660., 5380802., 5400944.,
      5457949., 5477914., 5497879., 5517844., 5567310., 5587396., 5607482.,
      5627568., 3447493., 3460506., 3473519., 3486532., 3517738., 3530828.,
      3543918., 3557008., 2500229., 2510666., 2521103., 2531540., 2553294.,
      2563780., 2574266., 2584752., 3899797., 3916506., 3933215., 3949924.,
      3983770., 4000556., 4017342., 4034128., 4034429., 4051754., 4069079.,
      4086404., 4120866., 4138268., 4155670., 4173072., 2620149., 2631370.,
      2642591., 2653812., 2675806., 2687076., 2698346., 2709616.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881., 5361362., 5380843., 5400324., 5449306., 5468908., 5488510.,
      5508112., 5574017., 5594466., 5614915., 5635364., 5685314., 5705884.,
      5726454., 5747024., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704., 4590891., 4614646., 4638401.,
      4662156., 4715412., 4739288., 4763164., 4787040., 4732403., 4756614.,
      4780825., 4805036., 4858748., 4883080., 4907412., 4931744., 7024867.,
      7051366., 7077865., 7104364., 7160364., 7186984., 7213604., 7240224.,
      7257003., 7284470., 7311937., 7339404., 7396372., 7423960., 7451548.,
      7479136., 6006685., 6034714., 6062743., 6090772., 6148302., 6176452.,
      6204602., 6232752., 5873253., 5901226., 5929199., 5957172., 6014646.,
      6042740., 6070834., 6098928., 5230933., 5250954., 5270975., 5290996.,
      5340518., 5360660., 5380802., 5400944., 5457949., 5477914., 5497879.,
      5517844., 5567310., 5587396., 5607482., 5627568.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3707585., 3733604., 3759721., 3785936., 5917373., 5958260., 5999301.,
      6040496., 6322701., 6364820., 6407093., 6449520., 4059601., 4086404.,
      4113305., 4140304., 4834781., 4870964., 4907301., 4943792., 7032041.,
      7087364., 7142929., 7198736., 6730617., 6785828., 6841281., 6896976.,
      3829805., 3863636., 3897621., 3931760., 4920461., 4960788., 5001269.,
      5041904., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 4479965., 4517940., 4556069., 4594352., 1894641.,
      1914052., 1933561., 1953168., 2877869., 2906836., 2935957., 2965232.,
      3019261., 3047412., 3075717., 3104176., 1891841., 1908452., 1925161.,
      1941968., 3430981., 3458604., 3486325., 3514144., 5378577., 5421692.,
      5464961., 5508384., 5648225., 5692060., 5736049., 5780192., 3621653.,
      3649548., 3677541., 3705632., 6080753., 6122236., 6163873., 6205664.,
      8997901., 9061772., 9125885., 9190240., 8462493., 8525740., 8589229.,
      8652960., 4855809., 4894940., 4934225., 4973664., 4485537., 4523484.,
      4561585., 4599840., 6748285., 6806892., 6865741., 6924832., 6618893.,
      6677388., 6736125., 6795104., 3903409., 3939516., 3975777., 4012192.,
      1597365., 1617868., 1638469., 1659168., 2323777., 2354972., 2386321.,
      2417824., 2276753., 2307132., 2337665., 2368352., 1307269., 1325484.,
      1343797., 1362208., 3877321., 3906548., 3935873., 3965296., 5923173.,
      5968516., 6014013., 6059664., 5964981., 6010532., 6056237., 6102096.,
      3814489., 3843476., 3872561., 3901744., 4845573., 4885188., 4924957.,
      4964880., 7485745., 7547412., 7609321., 7671472., 7769025., 7831604.,
      7894425., 7957488., 4910549., 4950372., 4990349., 5030480., 4700853.,
      4737444., 4774189., 4811088., 7198113., 7254516., 7311161., 7368048.,
      6877233., 6932500., 6988009., 7043760., 4049797., 4084036., 4118429.,
      4152976., 1930873., 1952468., 1974161., 1995952., 2853077., 2886500.,
      2920077., 2953808., 2617637., 2650244., 2683005., 2715920., 1445641.,
      1465460., 1485377., 1505392.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828., 6841281.,
      6896976., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 8997901., 9061772., 9125885., 9190240., 8462493.,
      8525740., 8589229., 8652960., 6748285., 6806892., 6865741., 6924832.,
      6618893., 6677388., 6736125., 6795104., 7485745., 7547412., 7609321.,
      7671472., 7769025., 7831604., 7894425., 7957488., 7198113., 7254516.,
      7311161., 7368048., 6877233., 6932500., 6988009., 7043760.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2786961., 2796418., 2820006., 2829512., 2853247., 2862802., 2886684.,
      2896288., 4368133., 4383610., 4420646., 4436200., 4473467., 4489098.,
      4526596., 4542304., 4710613., 4727322., 4765590., 4782376., 4820875.,
      4837738., 4876468., 4893408., 3000977., 3012002., 3036614., 3047688.,
      3072447., 3083570., 3108476., 3119648., 4157333., 4174266., 4210678.,
      4227688., 4264331., 4281418., 4318292., 4335456., 6136345., 6162386.,
      6217686., 6243848., 6299511., 6325794., 6381820., 6408224., 6115241.,
      6141170., 6196358., 6222408., 6277959., 6304130., 6360044., 6386336.,
      3740821., 3756634., 3790486., 3806376., 3840459., 3856426., 3890740.,
      3906784., 5807301., 5828378., 5868934., 5890088., 5930875., 5952106.,
      5993124., 6014432., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 4406213., 4426170., 4464166.,
      4484200., 4522427., 4542538., 4580996., 4601184., 2257681., 2269154.,
      2291846., 2303368., 2326207., 2337778., 2360764., 2372384., 3458693.,
      3475802., 3509894., 3527080., 3561403., 3578666., 3613220., 3630560.,
      3635797., 3652090., 3685366., 3701736., 3735243., 3751690., 3785428.,
      3801952., 2437393., 2446850., 2466982., 2476488., 2496767., 2506322.,
      2526748., 2536352., 3794773., 3805834., 3831026., 3842136., 3867475.,
      3878634., 3904120., 3915328., 6120697., 6138402., 6177666., 6195448.,
      6234943., 6252802., 6292528., 6310464., 6454473., 6472898., 6512882.,
      6531384., 6571599., 6590178., 6630624., 6649280., 4346069., 4358186.,
      4383890., 4396056., 4421907., 4434122., 4460120., 4472384., 5323017.,
      5345250., 5386962., 5409272., 5451215., 5473602., 5515776., 5538240.,
      7649021., 7683610., 7747458., 7782168., 7846379., 7881210., 7945784.,
      7980736., 7160461., 7194426., 7257650., 7291736., 7355323., 7389530.,
      7453480., 7487808., 4077449., 4098562., 4137714., 4158904., 4198287.,
      4219554., 4259168., 4280512., 4929593., 4948290., 4986466., 5005240.,
      5043647., 5062498., 5101136., 5120064., 7685229., 7714554., 7773138.,
      7802584., 7861531., 7891098., 7950408., 7980096., 8008189., 8037402.,
      8095874., 8125208., 8184043., 8213498., 8272696., 8302272., 5214905.,
      5232994., 5269122., 5287288., 5323647., 5341890., 5378480., 5396800.,
      2233429., 2245994., 2269778., 2282392., 2306323., 2318986., 2343064.,
      2355776., 3173625., 3192962., 3229282., 3248696., 3285247., 3304738.,
      3341520., 3361088., 2973897., 2992418., 3027922., 3046520., 3082255.,
      3100930., 3136896., 3155648., 1711061., 1722122., 1743858., 1754968.,
      1776851., 1788010., 1810040., 1821248., 3102745., 3115410., 3142206.,
      3154920., 3181863., 3194626., 3221716., 3234528., 4797165., 4817098.,
      4858590., 4878600., 4920323., 4940410., 4982364., 5002528., 4937917.,
      4958058., 4999758., 5019976., 5061907., 5082202., 5124364., 5144736.,
      3282713., 3295922., 3322718., 3335976., 3362919., 3376226., 3403316.,
      3416672., 5203581., 5223946., 5263790., 5284232., 5324307., 5344826.,
      5385132., 5405728., 7721441., 7753826., 7815470., 7847976., 7909983.,
      7942610., 8004980., 8037728., 7820145., 7853442., 7915998., 7949416.,
      8012335., 8045874., 8109156., 8142816., 4835453., 4857258., 4897102.,
      4918984., 4959059., 4981018., 5021324., 5043360., 4040621., 4057962.,
      4094782., 4112200., 4149251., 4166746., 4204028., 4221600., 6176593.,
      6203714., 6260094., 6287336., 6344079., 6371442., 6428548., 6456032.,
      6117601., 6143586., 6198830., 6224936., 6280543., 6306770., 6362740.,
      6389088., 3799469., 3815690., 3849950., 3866248., 3900739., 3917114.,
      3951836., 3968288., 3470745., 3484402., 3509278., 3522984., 3548007.,
      3561762., 3586932., 3600736., 5055341., 5076906., 5115454., 5137096.,
      5175875., 5197594., 5236604., 5258400., 4478781., 4499530., 4537262.,
      4558088., 4596051., 4616954., 4655148., 4676128., 2430617., 2443282.,
      2466622., 2479336., 2502823., 2515586., 2539220., 2552032.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 7649021., 7683610., 7747458.,
      7782168., 7846379., 7881210., 7945784., 7980736., 7160461., 7194426.,
      7257650., 7291736., 7355323., 7389530., 7453480., 7487808., 7685229.,
      7714554., 7773138., 7802584., 7861531., 7891098., 7950408., 7980096.,
      8008189., 8037402., 8095874., 8125208., 8184043., 8213498., 8272696.,
      8302272., 7721441., 7753826., 7815470., 7847976., 7909983., 7942610.,
      8004980., 8037728., 7820145., 7853442., 7915998., 7949416., 8012335.,
      8045874., 8109156., 8142816., 6176593., 6203714., 6260094., 6287336.,
      6344079., 6371442., 6428548., 6456032., 6117601., 6143586., 6198830.,
      6224936., 6280543., 6306770., 6362740., 6389088.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2481713., 2491170., 2500627., 2510084., 2532906., 2542412., 2551918.,
      2561424., 2584491., 2594046., 2603601., 2613156., 2636468., 2646072.,
      2655676., 2665280., 3868565., 3884042., 3899519., 3914996., 3950474.,
      3966028., 3981582., 3997136., 4032999., 4048630., 4064261., 4079892.,
      4116140., 4131848., 4147556., 4163264., 4183653., 4200362., 4217071.,
      4233780., 4270490., 4287276., 4304062., 4320848., 4357943., 4374806.,
      4391669., 4408532., 4446012., 4462952., 4479892., 4496832., 2765329.,
      2776354., 2787379., 2798404., 2822218., 2833292., 2844366., 2855440.,
      2879499., 2890622., 2901745., 2912868., 2937172., 2948344., 2959516.,
      2970688., 4555525., 4572458., 4589391., 4606324., 4643194., 4660204.,
      4677214., 4694224., 4731479., 4748566., 4765653., 4782740., 4820380.,
      4837544., 4854708., 4871872., 7203961., 7230002., 7256043., 7282084.,
      7337338., 7363500., 7389662., 7415824., 7471683., 7497966., 7524249.,
      7550532., 7606996., 7633400., 7659804., 7686208., 6694921., 6720850.,
      6746779., 6772708., 6827850., 6853900., 6879950., 6906000., 6961747.,
      6987918., 7014089., 7040260., 7096612., 7122904., 7149196., 7175488.,
      3663205., 3679018., 3694831., 3710644., 3744538., 3760428., 3776318.,
      3792208., 3826487., 3842454., 3858421., 3874388., 3909052., 3925096.,
      3941140., 3957184., 5401909., 5422986., 5444063., 5465140., 5506154.,
      5527308., 5548462., 5569616., 5611015., 5632246., 5653477., 5674708.,
      5716492., 5737800., 5759108., 5780416., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 4359061., 4379018., 4398975., 4418932., 4456970., 4477004.,
      4497038., 4517072., 4555495., 4575606., 4595717., 4615828., 4654636.,
      4674824., 4695012., 4715200., 2367825., 2379298., 2390771., 2402244.,
      2425866., 2437388., 2448910., 2460432., 2484299., 2495870., 2507441.,
      2519012., 2543124., 2554744., 2566364., 2577984., 3279413., 3296522.,
      3313631., 3330740., 3365354., 3382540., 3399726., 3416912., 3451911.,
      3469174., 3486437., 3503700., 3539084., 3556424., 3573764., 3591104.,
      3372293., 3388586., 3404879., 3421172., 3454970., 3471340., 3487710.,
      3504080., 3538263., 3554710., 3571157., 3587604., 3622172., 3638696.,
      3655220., 3671744., 2145073., 2154530., 2163987., 2173444., 2193450.,
      2202956., 2212462., 2221968., 2242219., 2251774., 2261329., 2270884.,
      2291380., 2300984., 2310588., 2320192., 3191157., 3202218., 3213279.,
      3224340., 3248766., 3259876., 3270986., 3282096., 3306767., 3317926.,
      3329085., 3340244., 3365160., 3376368., 3387576., 3398784., 4985545.,
      5003250., 5020955., 5038660., 5076366., 5094148., 5111930., 5129712.,
      5167803., 5185662., 5203521., 5221380., 5259856., 5277792., 5295728.,
      5313664., 5283737., 5302162., 5320587., 5339012., 5377438., 5395940.,
      5414442., 5432944., 5471755., 5490334., 5508913., 5527492., 5566688.,
      5585344., 5604000., 5622656., 3562069., 3574186., 3586303., 3598420.,
      3623326., 3635492., 3647658., 3659824., 3684975., 3697190., 3709405.,
      3721620., 3747016., 3759280., 3771544., 3783808., 5560633., 5582866.,
      5605099., 5627332., 5669502., 5691812., 5714122., 5736432., 5778987.,
      5801374., 5823761., 5846148., 5889088., 5911552., 5934016., 5956480.,
      7810269., 7844858., 7879447., 7914036., 7977838., 8012548., 8047258.,
      8081968., 8146375., 8181206., 8216037., 8250868., 8315880., 8350832.,
      8385784., 8420736., 7415405., 7449370., 7483335., 7517300., 7580478.,
      7614564., 7648650., 7682736., 7746519., 7780726., 7814933., 7849140.,
      7913528., 7947856., 7982184., 8016512., 4456089., 4477202., 4498315.,
      4519428., 4558622., 4579812., 4601002., 4622192., 4661771., 4683038.,
      4704305., 4725572., 4765536., 4786880., 4808224., 4829568., 4687209.,
      4705906., 4724603., 4743300., 4781934., 4800708., 4819482., 4838256.,
      4877275., 4896126., 4914977., 4933828., 4973232., 4992160., 5011088.,
      5030016., 6913101., 6942426., 6971751., 7001076., 7059614., 7089060.,
      7118506., 7147952., 7207095., 7236662., 7266229., 7295796., 7355544.,
      7385232., 7414920., 7444608., 7092189., 7121402., 7150615., 7179828.,
      7238254., 7267588., 7296922., 7326256., 7385287., 7414742., 7444197.,
      7473652., 7533288., 7562864., 7592440., 7622016., 4530377., 4548466.,
      4566555., 4584644., 4620814., 4638980., 4657146., 4675312., 4711867.,
      4730110., 4748353., 4766596., 4803536., 4821856., 4840176., 4858496.,
      3325845., 3338410., 3350975., 3363540., 3388254., 3400868., 3413482.,
      3426096., 3451055., 3463718., 3476381., 3489044., 3514248., 3526960.,
      3539672., 3552384., 4738665., 4758002., 4777339., 4796676., 4833518.,
      4852932., 4872346., 4891760., 4928987., 4948478., 4967969., 4987460.,
      5025072., 5044640., 5064208., 5083776., 4077881., 4096402., 4114923.,
      4133444., 4169470., 4188068., 4206666., 4225264., 4261675., 4280350.,
      4299025., 4317700., 4354496., 4373248., 4392000., 4410752., 2024053.,
      2035114., 2046175., 2057236., 2078846., 2089956., 2101066., 2112176.,
      2134031., 2145190., 2156349., 2167508., 2189608., 2200816., 2212024.,
      2223232., 3646649., 3659314., 3671979., 3684644., 3710674., 3723388.,
      3736102., 3748816., 3775091., 3787854., 3800617., 3813380., 3839900.,
      3852712., 3865524., 3878336., 5193213., 5213146., 5233079., 5253012.,
      5292946., 5312956., 5332966., 5352976., 5393295., 5413382., 5433469.,
      5453556., 5494260., 5514424., 5534588., 5554752., 5105869., 5126010.,
      5146151., 5166292., 5206434., 5226652., 5246870., 5267088., 5307615.,
      5327910., 5348205., 5368500., 5409412., 5429784., 5450156., 5470528.,
      3211929., 3225138., 3238347., 3251556., 3277554., 3290812., 3304070.,
      3317328., 3343571., 3356878., 3370185., 3383492., 3409980., 3423336.,
      3436692., 3450048., 5051245., 5071610., 5091975., 5112340., 5152642.,
      5173084., 5193526., 5213968., 5254655., 5275174., 5295693., 5316212.,
      5357284., 5377880., 5398476., 5419072., 7381825., 7414210., 7446595.,
      7478980., 7540578., 7573084., 7605590., 7638096., 7700299., 7732926.,
      7765553., 7798180., 7860988., 7893736., 7926484., 7959232., 7635665.,
      7668962., 7702259., 7735556., 7798066., 7831484., 7864902., 7898320.,
      7961435., 7994974., 8028513., 8062052., 8125772., 8159432., 8193092.,
      8226752., 4785613., 4807418., 4829223., 4851028., 4890914., 4912796.,
      4934678., 4956560., 4996831., 5018790., 5040749., 5062708., 5103364.,
      5125400., 5147436., 5169472., 4473245., 4490586., 4507927., 4525268.,
      4562546., 4579964., 4597382., 4614800., 4652463., 4669958., 4687453.,
      4704948., 4742996., 4760568., 4778140., 4795712., 6992561., 7019682.,
      7046803., 7073924., 7130258., 7157500., 7184742., 7211984., 7268923.,
      7296286., 7323649., 7351012., 7408556., 7436040., 7463524., 7491008.,
      6933057., 6959042., 6985027., 7011012., 7066210., 7092316., 7118422.,
      7144528., 7200331., 7226558., 7252785., 7279012., 7335420., 7361768.,
      7388116., 7414464., 3923453., 3939674., 3955895., 3972116., 4006418.,
      4022716., 4039014., 4055312., 4089999., 4106374., 4122749., 4139124.,
      4174196., 4190648., 4207100., 4223552., 3399129., 3412786., 3426443.,
      3440100., 3465906., 3479612., 3493318., 3507024., 3533075., 3546830.,
      3560585., 3574340., 3600636., 3614440., 3628244., 3642048., 4764317.,
      4785882., 4807447., 4829012., 4868082., 4889724., 4911366., 4933008.,
      4972463., 4994182., 5015901., 5037620., 5077460., 5099256., 5121052.,
      5142848., 4398445., 4419194., 4439943., 4460692., 4498946., 4519772.,
      4540598., 4561424., 4600063., 4620966., 4641869., 4662772., 4701796.,
      4722776., 4743756., 4764736., 2435513., 2448178., 2460843., 2473508.,
      2496722., 2509436., 2522150., 2534864., 2558323., 2571086., 2583849.,
      2596612., 2620316., 2633128., 2645940., 2658752.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 7810269., 7844858., 7879447., 7914036., 7977838., 8012548.,
      8047258., 8081968., 8146375., 8181206., 8216037., 8250868., 8315880.,
      8350832., 8385784., 8420736., 7415405., 7449370., 7483335., 7517300.,
      7580478., 7614564., 7648650., 7682736., 7746519., 7780726., 7814933.,
      7849140., 7913528., 7947856., 7982184., 8016512., 6913101., 6942426.,
      6971751., 7001076., 7059614., 7089060., 7118506., 7147952., 7207095.,
      7236662., 7266229., 7295796., 7355544., 7385232., 7414920., 7444608.,
      7092189., 7121402., 7150615., 7179828., 7238254., 7267588., 7296922.,
      7326256., 7385287., 7414742., 7444197., 7473652., 7533288., 7562864.,
      7592440., 7622016., 7381825., 7414210., 7446595., 7478980., 7540578.,
      7573084., 7605590., 7638096., 7700299., 7732926., 7765553., 7798180.,
      7860988., 7893736., 7926484., 7959232., 7635665., 7668962., 7702259.,
      7735556., 7798066., 7831484., 7864902., 7898320., 7961435., 7994974.,
      8028513., 8062052., 8125772., 8159432., 8193092., 8226752., 6992561.,
      7019682., 7046803., 7073924., 7130258., 7157500., 7184742., 7211984.,
      7268923., 7296286., 7323649., 7351012., 7408556., 7436040., 7463524.,
      7491008., 6933057., 6959042., 6985027., 7011012., 7066210., 7092316.,
      7118422., 7144528., 7200331., 7226558., 7252785., 7279012., 7335420.,
      7361768., 7388116., 7414464.};
  const std::array<int, 4> in_shape = {{3, 15, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      288148.,  406483.,  432047.,  276801.,  620092.,  856317.,  885841.,
      558327.,  972092.,  1328701., 1358225., 849079.,  449092.,  604527.,
      616539.,  377349.,  1423828., 1940323., 1965887., 1229361., 1940092.,
      2627757., 2657281., 1648647., 2292092., 3100141., 3129665., 1939399.,
      993412.,  1325247., 1337259., 812469.,  2559508., 3474163., 3499727.,
      2181921., 3260092., 4399197., 4428721., 2738967., 3612092., 4871581.,
      4901105., 3029719., 1537732., 2045967., 2057979., 1247589.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      848936.,  878460.,  1321320., 1350844., 2620376., 2649900.,
      3092760., 3122284., 4391816., 4421340., 4864200., 4893724.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      573356.,  576296.,  808731.,  812966.,  859551.,  864094.,  550613.,
      553602.,  1232748., 1240184., 1702107., 1712634., 1760671., 1771682.,
      1109493., 1116654., 1931116., 1944184., 2639131., 2657402., 2697695.,
      2716450., 1686069., 1698158., 888076.,  898184.,  1194963., 1209054.,
      1218679., 1233078., 745437.,  754698.,  2831276., 2847656., 3857931.,
      3880646., 3908751., 3931774., 2443973., 2458722., 3851628., 3880184.,
      5215947., 5255514., 5274511., 5314562., 3271653., 3297294., 4549996.,
      4584184., 6152971., 6200282., 6211535., 6259330., 3848229., 3878798.,
      1963276., 1986824., 2617923., 2650494., 2641639., 2674518., 1603917.,
      1624938., 5089196., 5119016., 6907131., 6948326., 6957951., 6999454.,
      4337333., 4363842., 6470508., 6520184., 8729787., 8798394., 8788351.,
      8857442., 5433813., 5477934., 7168876., 7224184., 9666811., 9743162.,
      9725375., 9802210., 6010389., 6059438., 3038476., 3075464., 4040883.,
      4091934., 4064599., 4115958., 2462397., 2495178.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1687466., 1697872., 1746030., 1756920., 2624490., 2642640.,
      2683054., 2701688., 5201306., 5240752., 5259870., 5299800.,
      6138330., 6185520., 6196894., 6244568., 8715146., 8783632.,
      8773710., 8842680., 9652170., 9728400., 9710734., 9787448.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1143772.,  1146712.,  1149652.,  1152592.,  1613227.,  1617462.,
      1621697.,  1625932.,  1714559.,  1719102.,  1723645.,  1728188.,
      1098237.,  1101226.,  1104215.,  1107204.,  2458060.,  2465496.,
      2472932.,  2480368.,  3393687.,  3404214.,  3414741.,  3425268.,
      3510331.,  3521342.,  3532353.,  3543364.,  2211825.,  2218986.,
      2226147.,  2233308.,  3849164.,  3862232.,  3875300.,  3888368.,
      5259991.,  5278262.,  5296533.,  5314804.,  5376635.,  5395390.,
      5414145.,  5432900.,  3360049.,  3372138.,  3384227.,  3396316.,
      1766044.,  1776152.,  1786260.,  1796368.,  2375835.,  2389926.,
      2404017.,  2418108.,  2422959.,  2437358.,  2451757.,  2466156.,
      1481613.,  1490874.,  1500135.,  1509396.,  5646172.,  5662552.,
      5678932.,  5695312.,  7693147.,  7715862.,  7738577.,  7761292.,
      7794479.,  7817502.,  7840525.,  7863548.,  4873197.,  4887946.,
      4902695.,  4917444.,  7674700.,  7703256.,  7731812.,  7760368.,
      10392327., 10431894., 10471461., 10511028., 10508971., 10549022.,
      10589073., 10629124., 6517665.,  6543306.,  6568947.,  6594588.,
      9065804.,  9099992.,  9134180.,  9168368.,  12258631., 12305942.,
      12353253., 12400564., 12375275., 12423070., 12470865., 12518660.,
      7665889.,  7696458.,  7727027.,  7757596.,  3903004.,  3926552.,
      3950100.,  3973648.,  5203275.,  5235846.,  5268417.,  5300988.,
      5250399.,  5283278.,  5316157.,  5349036.,  3186813.,  3207834.,
      3228855.,  3249876.,  2386652.,  2395992.,  2405332.,  2414672.,
      3269387.,  3282422.,  3295457.,  3308492.,  3370719.,  3384062.,
      3397405.,  3410748.,  2107357.,  2115946.,  2124535.,  2133124.,
      2163916.,  2176728.,  2189540.,  2202352.,  2944887.,  2962806.,
      2980725.,  2998644.,  3061531.,  3079934.,  3098337.,  3116740.,
      1888593.,  1900458.,  1912323.,  1924188.,  3153612.,  3163864.,
      3174116.,  3184368.,  4326839.,  4341238.,  4355637.,  4370036.,
      4443483.,  4458366.,  4473249.,  4488132.,  2785937.,  2795562.,
      2805187.,  2814812.,  1481116.,  1489432.,  1497748.,  1506064.,
      1998843.,  2010470.,  2022097.,  2033724.,  2045967.,  2057902.,
      2069837.,  2081772.,  1254253.,  1261946.,  1269639.,  1277332.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526.,  3374932.,  3385338.,  3395744.,  3481170.,  3492060.,
      3502950.,  3513840.,  5230830.,  5248980.,  5267130.,  5285280.,
      5347474.,  5366108.,  5384742.,  5403376.,  10363166., 10402612.,
      10442058., 10481504., 10479810., 10519740., 10559670., 10599600.,
      12229470., 12276660., 12323850., 12371040., 12346114., 12393788.,
      12441462., 12489136., 2915726.,  2933524.,  2951322.,  2969120.,
      3032370.,  3050652.,  3068934.,  3087216.,  4297678.,  4311956.,
      4326234.,  4340512.,  4414322.,  4429084.,  4443846.,  4458608.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1137304.,  1152592.,  1604757.,  1625932.,  1706397.,  1728188., 1093337.,
      1107204.,  2454584.,  2480368.,  3389573.,  3425268.,  3506701., 3543364.,
      2209977.,  2233308.,  3851320.,  3888368.,  5263621.,  5314804., 5380749.,
      5432900.,  3363129.,  3396316.,  1771672.,  1796368.,  2383997., 2418108.,
      2431429.,  2466156.,  1487297.,  1509396.,  5653144.,  5695312., 7703157.,
      7761292.,  7804797.,  7863548.,  4880057.,  4917444.,  7692344., 7760368.,
      10417253., 10511028., 10534381., 10629124., 6534297.,  6594588., 9089080.,
      9168368.,  12291301., 12400564., 12408429., 12518660., 7687449., 7757596.,
      3922072.,  3973648.,  5229917.,  5300988.,  5277349.,  5349036., 3204257.,
      3249876.,  2386584.,  2414672.,  3269717.,  3308492.,  3371357., 3410748.,
      2108057.,  2133124.,  2165816.,  2202352.,  2948165.,  2998644., 3065293.,
      3116740.,  1891449.,  1924188.,  3152952.,  3184368.,  4326597., 4370036.,
      4443725.,  4488132.,  2786553.,  2814812.,  1484952.,  1506064., 2004541.,
      2033724.,  2051973.,  2081772.,  1258369.,  1277332.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3360291.,  3395744.,  3477419.,  3513840.,  5234339.,  5285280.,
      5351467.,  5403376.,  10387971., 10481504., 10505099., 10599600.,
      12262019., 12371040., 12379147., 12489136., 2918883.,  2969120.,
      3036011.,  3087216.,  4297315.,  4340512.,  4414443.,  4458608.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2268784.,  2274608.,  2299304.,  2305184.,  3201121.,  3209514.,
      3243394.,  3251864.,  3403785.,  3412794.,  3447290.,  3456376.,
      2180745.,  2186674.,  2208430.,  2214408.,  4894384.,  4909168.,
      4945864.,  4960736.,  6758213.,  6779146.,  6829482.,  6850536.,
      6991501.,  7013402.,  7064706.,  7086728.,  4405709.,  4419954.,
      4452294.,  4466616.,  7676592.,  7702640.,  7750600.,  7776736.,
      10490821., 10527242., 10593066., 10629608., 10724109., 10761498.,
      10828290., 10865800., 6702157.,  6726258.,  6768454.,  6792632.,
      3523184.,  3543344.,  3572520.,  3592736.,  4739889.,  4767994.,
      4808034.,  4836216.,  4834137.,  4862858.,  4903514.,  4932312.,
      2956121.,  2974594.,  3000270.,  3018792.,  2499952.,  2508080.,
      2535080.,  2543264.,  3499969.,  3511530.,  3548578.,  3560216.,
      3702633.,  3714810.,  3752474.,  3764728.,  2354793.,  2362738.,
      2386510.,  2394504.,  4309424.,  4325488.,  4363464.,  4379616.,
      5943333.,  5966026.,  6018122.,  6040936.,  6176621.,  6200282.,
      6253346.,  6277128.,  3878189.,  3893554.,  3927014.,  3942456.,
      6981040.,  7004272.,  7049416.,  7072736.,  9557669.,  9590218.,
      9652170.,  9684840.,  9790957.,  9824474.,  9887394.,  9921032.,
      6128045.,  6149682.,  6189414.,  6211128.,  3238256.,  3256624.,
      3284008.,  3302432.,  4362897.,  4388538.,  4426114.,  4451832.,
      4457145.,  4483402.,  4521594.,  4547928.,  2728761.,  2745666.,
      2769774.,  2786728.,  2911344.,  2921776.,  2951080.,  2961568.,
      4046625.,  4061354.,  4101570.,  4116376.,  4249289.,  4264634.,
      4305466.,  4320888.,  2686537.,  2696498.,  2722286.,  2732296.,
      3904688.,  3922032.,  3961288.,  3978720.,  5376261.,  5400714.,
      5454570.,  5479144.,  5609549.,  5634970.,  5689794.,  5715336.,
      3508365.,  3524850.,  3559430.,  3575992.,  6285488.,  6305904.,
      6348232.,  6368736.,  8624517.,  8653194.,  8711274.,  8740072.,
      8857805.,  8887450.,  8946498.,  8976264.,  5553933.,  5573106.,
      5610374.,  5629624.,  2953328.,  2969904.,  2995496.,  3012128.,
      3985905.,  4009082.,  4044194.,  4067448.,  4080153.,  4103946.,
      4139674.,  4163544.,  2501401.,  2516738.,  2539278.,  2554664.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752., 5885011.,  5907462.,
      5959316.,  5981888.,  6118299.,  6141718.,  6194540.,  6218080.,
      9499347.,  9531654.,  9593364.,  9625792.,  9732635.,  9765910.,
      9828588.,  9861984.,  5317939.,  5342150.,  5395764.,  5420096.,
      5551227.,  5576406.,  5630988.,  5656288.,  8566195.,  8594630.,
      8652468.,  8681024.,  8799483.,  8828886.,  8887692.,  8917216.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1699360., 1705184., 1711008., 1716832., 1738840., 1744720., 1750600.,
      1756480., 2367993., 2376386., 2384779., 2393172., 2423278., 2431748.,
      2440218., 2448688., 2539233., 2548242., 2557251., 2566260., 2596982.,
      2606068., 2615154., 2624240., 1613801., 1619730., 1625659., 1631588.,
      1651202., 1657180., 1663158., 1669136., 4189088., 4203872., 4218656.,
      4233440., 4270456., 4285328., 4300200., 4315072., 5734085., 5755018.,
      5775951., 5796884., 5847318., 5868372., 5889426., 5910480., 5966221.,
      5988122., 6010023., 6031924., 6083326., 6105348., 6127370., 6149392.,
      3761653., 3775898., 3790143., 3804388., 3836826., 3851148., 3865470.,
      3879792., 6989728., 7015776., 7041824., 7067872., 7116152., 7142288.,
      7168424., 7194560., 9448261., 9484682., 9521103., 9557524., 9623446.,
      9659988., 9696530., 9733072., 9680397., 9717786., 9755175., 9792564.,
      9859454., 9896964., 9934474., 9971984., 6050933., 6075034., 6099135.,
      6123236., 6165530., 6189708., 6213886., 6238064., 4718112., 4738272.,
      4758432., 4778592., 4811608., 4831824., 4852040., 4872256., 6406809.,
      6434914., 6463019., 6491124., 6536366., 6564548., 6592730., 6620912.,
      6541441., 6570162., 6598883., 6627604., 6673462., 6702260., 6731058.,
      6759856., 4198537., 4217010., 4235483., 4253956., 4283202., 4301724.,
      4320246., 4338768., 2847520., 2855648., 2863776., 2871904., 2896216.,
      2904400., 2912584., 2920768., 3896409., 3907970., 3919531., 3931092.,
      3964366., 3976004., 3987642., 3999280., 4067649., 4079826., 4092003.,
      4104180., 4138070., 4150324., 4162578., 4174832., 2533321., 2541266.,
      2549211., 2557156., 2578786., 2586780., 2594774., 2602768., 3706016.,
      3722080., 3738144., 3754208., 3792504., 3808656., 3824808., 3840960.,
      5036453., 5059146., 5081839., 5104532., 5156726., 5179540., 5202354.,
      5225168., 5268589., 5292250., 5315911., 5339572., 5392734., 5416516.,
      5440298., 5464080., 3278933., 3294298., 3309663., 3325028., 3358586.,
      3374028., 3389470., 3404912., 6289568., 6312800., 6336032., 6359264.,
      6404728., 6428048., 6451368., 6474688., 8519717., 8552266., 8584815.,
      8617364., 8679414., 8712084., 8744754., 8777424., 8751853., 8785370.,
      8818887., 8852404., 8915422., 8949060., 8982698., 9016336., 5478613.,
      5500250., 5521887., 5543524., 5583354., 5605068., 5626782., 5648496.,
      4313888., 4332256., 4350624., 4368992., 4400216., 4418640., 4437064.,
      4455488., 5868281., 5893922., 5919563., 5945204., 5987982., 6013700.,
      6039418., 6065136., 6002913., 6029170., 6055427., 6081684., 6125078.,
      6151412., 6177746., 6204080., 3860073., 3876978., 3893883., 3910788.,
      3938466., 3955420., 3972374., 3989328., 3831840., 3842272., 3852704.,
      3863136., 3889752., 3900240., 3910728., 3921216., 5396153., 5410882.,
      5425611., 5440340., 5476782., 5491588., 5506394., 5521200., 5567393.,
      5582738., 5598083., 5613428., 5650486., 5665908., 5681330., 5696752.,
      3768233., 3778194., 3788155., 3798116., 3821762., 3831772., 3841782.,
      3851792., 3583392., 3600736., 3618080., 3635424., 3675000., 3692432.,
      3709864., 3727296., 4834437., 4858890., 4883343., 4907796., 4961750.,
      4986324., 5010898., 5035472., 5066573., 5091994., 5117415., 5142836.,
      5197758., 5223300., 5248842., 5274384., 3111605., 3128090., 3144575.,
      3161060., 3195738., 3212300., 3228862., 3245424., 5589408., 5609824.,
      5630240., 5650656., 5693304., 5713808., 5734312., 5754816., 7591173.,
      7619850., 7648527., 7677204., 7735382., 7764180., 7792978., 7821776.,
      7823309., 7852954., 7882599., 7912244., 7971390., 8001156., 8030922.,
      8060688., 4906293., 4925466., 4944639., 4963812., 5001178., 5020428.,
      5039678., 5058928., 3909664., 3926240., 3942816., 3959392., 3988824.,
      4005456., 4022088., 4038720., 5329753., 5352930., 5376107., 5399284.,
      5439598., 5462852., 5486106., 5509360., 5464385., 5488178., 5511971.,
      5535764., 5576694., 5600564., 5624434., 5648304., 3521609., 3536946.,
      3552283., 3567620., 3593730., 3609116., 3624502., 3639888.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256., 4978419., 5000870., 5023321.,
      5045772., 5097724., 5120296., 5142868., 5165440., 5210555., 5233974.,
      5257393., 5280812., 5333732., 5357272., 5380812., 5404352., 8461683.,
      8493990., 8526297., 8558604., 8620412., 8652840., 8685268., 8717696.,
      8693819., 8727094., 8760369., 8793644., 8856420., 8889816., 8923212.,
      8956608., 4776403., 4800614., 4824825., 4849036., 4902748., 4927080.,
      4951412., 4975744., 5008539., 5033718., 5058897., 5084076., 5138756.,
      5164056., 5189356., 5214656., 7533139., 7561574., 7590009., 7618444.,
      7676380., 7704936., 7733492., 7762048., 7765275., 7794678., 7824081.,
      7853484., 7912388., 7941912., 7971436., 8000960.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4518808., 4549216., 4579736., 4610368., 6376909., 6419028., 6461301.,
      6503728., 6782237., 6825588., 6869093., 6912752., 4345761., 4373348.,
      4401033., 4428816., 4569208., 4608224., 4647416., 4686784., 6441633.,
      6495764., 6550137., 6604752., 6908209., 6964276., 7020585., 7077136.,
      4395909., 4431588., 4467421., 4503408., 5726328., 5771488., 5816824.,
      5862336., 7981985., 8044564., 8107385., 8170448., 8448561., 8513076.,
      8577833., 8642832., 5333125., 5374180., 5415389., 5456752., 2478616.,
      2499168., 2519832., 2540608., 3436125., 3464692., 3493413., 3522288.,
      3624621., 3654420., 3684373., 3714480., 2267377., 2286340., 2305401.,
      2324560., 4149656., 4180576., 4211608., 4242752., 5865101., 5907924.,
      5950901., 5994032., 6270429., 6314484., 6358693., 6403056., 4016481.,
      4044516., 4072649., 4100880., 4841080., 4882656., 4924408., 4966336.,
      6794337., 6851988., 6909881., 6968016., 7260913., 7320500., 7380329.,
      7440400., 4602437., 4640356., 4678429., 4716656., 5166712., 5210336.,
      5254136., 5298112., 7225185., 7285652., 7346361., 7407312., 7691761.,
      7754164., 7816809., 7879696., 4862277., 4901988., 4941853., 4981872.,
      2019352., 2040416., 2061592., 2082880., 2800413., 2829684., 2859109.,
      2888688., 2988909., 3019412., 3050069., 3080880., 1859249., 1878660.,
      1898169., 1917776., 3960728., 3992160., 4023704., 4055360., 5601101.,
      5644628., 5688309., 5732144., 6006429., 6051188., 6096101., 6141168.,
      3844897., 3873380., 3901961., 3930640., 5473400., 5517536., 5561848.,
      5606336., 7642657., 7703828., 7765241., 7826896., 8109233., 8172340.,
      8235689., 8299280., 5124357., 5164516., 5204829., 5245296., 4787320.,
      4829408., 4871672., 4914112., 6716193., 6774548., 6833145., 6891984.,
      7182769., 7243060., 7303593., 7364368., 4549125., 4587492., 4626013.,
      4664688., 1740312., 1761888., 1783576., 1805376., 2412509., 2442484.,
      2472613., 2502896., 2601005., 2632212., 2663573., 2695088., 1608817.,
      1628676., 1648633., 1668688.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148., 6902973.,
      6959040., 7865341., 7927436., 7989773., 8052352., 8331917., 8395948.,
      8460221., 8524736., 6677693., 6734860., 6792269., 6849920., 7144269.,
      7203372., 7262717., 7322304., 7108541., 7168524., 7228749., 7289216.,
      7575117., 7637036., 7699197., 7761600., 7526013., 7586700., 7647629.,
      7708800., 7992589., 8055212., 8118077., 8181184., 6599549., 6657420.,
      6715533., 6773888., 7066125., 7125932., 7185981., 7246272.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3382760., 3394352., 3422016., 3433664., 3461496., 3473200., 3501200.,
      3512960., 4714581., 4731290., 4769558., 4786344., 4824843., 4841706.,
      4880436., 4897376., 5057061., 5075002., 5114502., 5132520., 5172251.,
      5190346., 5230308., 5248480., 3214113., 3225922., 3251318., 3263176.,
      3288719., 3300626., 3326316., 3338272., 4264392., 4281584., 4320832.,
      4338112., 4377624., 4394992., 4434768., 4452224., 6015537., 6040386.,
      6094494., 6119464., 6173935., 6199026., 6253860., 6279072., 6479809.,
      6506594., 6562638., 6589544., 6645951., 6672978., 6729748., 6756896.,
      4226061., 4243722., 4279422., 4297160., 4333091., 4350906., 4387068.,
      4404960., 5786056., 5809392., 5854784., 5878208., 5923864., 5947376.,
      5993296., 6016896., 7908145., 7941442., 8003998., 8037416., 8100335.,
      8133874., 8197156., 8230816., 8372417., 8407650., 8472142., 8507496.,
      8572351., 8607826., 8673044., 8708640., 5177613., 5200650., 5241726.,
      5264840., 5306147., 5329338., 5370876., 5394144., 2956008., 2967600.,
      2991936., 3003584., 3028088., 3039792., 3064464., 3076224., 4180341.,
      4197050., 4230742., 4247528., 4281451., 4298314., 4332468., 4349408.,
      4449605., 4467546., 4502470., 4520488., 4555643., 4573738., 4609124.,
      4627296., 2971073., 2982882., 3005366., 3017224., 3039855., 3051762.,
      3074540., 3086496., 4020200., 4032304., 4060480., 4072640., 4100984.,
      4113200., 4141712., 4153984., 5558037., 5575450., 5614422., 5631912.,
      5671115., 5688682., 5728116., 5745760., 5900517., 5919162., 5959366.,
      5978088., 6018523., 6037322., 6077988., 6096864., 3701985., 3714242.,
      3740086., 3752392., 3778383., 3790738., 3816876., 3829280., 4084680.,
      4104432., 4146240., 4166080., 4208152., 4228080., 4270416., 4290432.,
      5701617., 5729986., 5787614., 5816104., 5874095., 5902706., 5961060.,
      5989792., 6165889., 6196194., 6255758., 6286184., 6346111., 6376658.,
      6436948., 6467616., 3948749., 3968650., 4006590., 4026568., 4064739.,
      4084794., 4123196., 4143328., 6044616., 6066416., 6110272., 6132160.,
      6176280., 6198256., 6242640., 6264704., 8264433., 8295618., 8356062.,
      8387368., 8448175., 8479602., 8540772., 8572320., 8728705., 8761826.,
      8824206., 8857448., 8920191., 8953554., 9016660., 9050144., 5384141.,
      5405834., 5445566., 5467336., 5507299., 5529146., 5569340., 5591264.,
      2364648., 2376752., 2401600., 2413760., 2438776., 2450992., 2476176.,
      2488448., 3334197., 3351610., 3386006., 3403496., 3438123., 3455690.,
      3490548., 3508192., 3603461., 3622106., 3657734., 3676456., 3712315.,
      3731114., 3767204., 3786080., 2383745., 2396002., 2418934., 2431240.,
      2454319., 2466674., 2489900., 2502304., 4493800., 4506416., 4535104.,
      4547776., 4576632., 4589360., 4618384., 4631168., 6372821., 6390938.,
      6430614., 6448808., 6488715., 6506986., 6547124., 6565472., 6715301.,
      6734650., 6775558., 6794984., 6836123., 6855626., 6896996., 6916576.,
      4505249., 4517954., 4544246., 4557000., 4583439., 4596242., 4622828.,
      4635680., 4625864., 4648176., 4692544., 4714944., 4759576., 4782064.,
      4826960., 4849536., 6378929., 6410818., 6471966., 6503976., 6565487.,
      6597618., 6659492., 6691744., 6843201., 6877026., 6940110., 6974056.,
      7037503., 7071570., 7135380., 7169568., 4302221., 4324362., 4364542.,
      4386760., 4427171., 4449466., 4490108., 4512480., 6139336., 6159600.,
      6201920., 6222272., 6264856., 6285296., 6328144., 6348672., 8592049.,
      8621122., 8679454., 8708648., 8767343., 8796658., 8855716., 8885152.,
      9056321., 9087330., 9147598., 9178728., 9239359., 9270610., 9331604.,
      9362976., 5906061., 5926410., 5964798., 5985224., 6023843., 6044346.,
      6083196., 6103776., 2133736., 2146352., 2171712., 2184384., 2209912.,
      2222640., 2248336., 2261120., 2983669., 3001786., 3036886., 3055080.,
      3090411., 3108682., 3144244., 3162592., 3252933., 3272282., 3308614.,
      3328040., 3364603., 3384106., 3420900., 3440480., 2111809., 2124514.,
      2147894., 2160648., 2184175., 2196978., 2220652., 2233504.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184., 5585549., 5613434., 5670578.,
      5698584., 5756091., 5784218., 5842088., 5870336., 6049821., 6079642.,
      6138722., 6168664., 6228107., 6258170., 6317976., 6348160., 8148365.,
      8179066., 8239026., 8269848., 8330171., 8361114., 8421800., 8452864.,
      8612637., 8645274., 8707170., 8739928., 8802187., 8835066., 8897688.,
      8930688., 6262861., 6294266., 6354930., 6386456., 6447483., 6479130.,
      6540520., 6572288., 6727133., 6760474., 6823074., 6856536., 6919499.,
      6953082., 7016408., 7050112., 8475981., 8504570., 8562418., 8591128.,
      8649339., 8678170., 8736744., 8765696., 8940253., 8970778., 9030562.,
      9061208., 9121355., 9152122., 9212632., 9243520.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3024008., 3035600., 3047192., 3058784., 3085568., 3097216., 3108864.,
      3120512., 3147576., 3159280., 3170984., 3182688., 3210032., 3221792.,
      3233552., 3245312., 4177253., 4193962., 4210671., 4227380., 4264090.,
      4280876., 4297662., 4314448., 4351543., 4368406., 4385269., 4402132.,
      4439612., 4456552., 4473492., 4490432., 4492341., 4510282., 4528223.,
      4546164., 4584106., 4602124., 4620142., 4638160., 4676487., 4694582.,
      4712677., 4730772., 4769484., 4787656., 4805828., 4824000., 2961441.,
      2973250., 2985059., 2996868., 3021466., 3033324., 3045182., 3057040.,
      3081883., 3093790., 3105697., 3117604., 3142692., 3154648., 3166604.,
      3178560., 4508776., 4525968., 4543160., 4560352., 4600064., 4617344.,
      4634624., 4651904., 4692056., 4709424., 4726792., 4744160., 4784752.,
      4802208., 4819664., 4837120., 6115665., 6140514., 6165363., 6190212.,
      6244274., 6269244., 6294214., 6319184., 6373851., 6398942., 6424033.,
      6449124., 6504396., 6529608., 6554820., 6580032., 6575329., 6602114.,
      6628899., 6655684., 6711682., 6738588., 6765494., 6792400., 6849003.,
      6876030., 6903057., 6930084., 6987292., 7014440., 7041588., 7068736.,
      4115741., 4133402., 4151063., 4168724., 4204466., 4222204., 4239942.,
      4257680., 4293807., 4311622., 4329437., 4347252., 4383764., 4401656.,
      4419548., 4437440., 5710952., 5734288., 5757624., 5780960., 5826816.,
      5850240., 5873664., 5897088., 5943384., 5966896., 5990408., 6013920.,
      6060656., 6084256., 6107856., 6131456., 7664209., 7697506., 7730803.,
      7764100., 7826610., 7860028., 7893446., 7926864., 7989979., 8023518.,
      8057057., 8090596., 8154316., 8187976., 8221636., 8255296., 8123873.,
      8159106., 8194339., 8229572., 8294018., 8329372., 8364726., 8400080.,
      8465131., 8500606., 8536081., 8571556., 8637212., 8672808., 8708404.,
      8744000., 5095965., 5119002., 5142039., 5165076., 5206194., 5229308.,
      5252422., 5275536., 5317039., 5340230., 5363421., 5386612., 5428500.,
      5451768., 5475036., 5498304., 2845320., 2856912., 2868504., 2880096.,
      2905344., 2916992., 2928640., 2940288., 2965816., 2977520., 2989224.,
      3000928., 3026736., 3038496., 3050256., 3062016., 3879333., 3896042.,
      3912751., 3929460., 3963674., 3980460., 3997246., 4014032., 4048631.,
      4065494., 4082357., 4099220., 4134204., 4151144., 4168084., 4185024.,
      4154485., 4172426., 4190367., 4208308., 4243754., 4261772., 4279790.,
      4297808., 4333639., 4351734., 4369829., 4387924., 4424140., 4442312.,
      4460484., 4478656., 2650977., 2662786., 2674595., 2686404., 2708762.,
      2720620., 2732478., 2744336., 2766939., 2778846., 2790753., 2802660.,
      2825508., 2837464., 2849420., 2861376., 3282568., 3294672., 3306776.,
      3318880., 3346176., 3358336., 3370496., 3382656., 3410232., 3422448.,
      3434664., 3446880., 3474736., 3487008., 3499280., 3511552., 4454437.,
      4471850., 4489263., 4506676., 4544090., 4561580., 4579070., 4596560.,
      4634359., 4651926., 4669493., 4687060., 4725244., 4742888., 4760532.,
      4778176., 4769525., 4788170., 4806815., 4825460., 4864106., 4882828.,
      4901550., 4920272., 4959303., 4978102., 4996901., 5015700., 5055116.,
      5073992., 5092868., 5111744., 3019233., 3031490., 3043747., 3056004.,
      3081050., 3093356., 3105662., 3117968., 3143259., 3155614., 3167969.,
      3180324., 3205860., 3218264., 3230668., 3243072., 4736616., 4756368.,
      4776120., 4795872., 4838144., 4857984., 4877824., 4897664., 4940376.,
      4960304., 4980232., 5000160., 5043312., 5063328., 5083344., 5103360.,
      6565649., 6594018., 6622387., 6650756., 6708338., 6736828., 6765318.,
      6793808., 6851995., 6880606., 6909217., 6937828., 6996620., 7025352.,
      7054084., 7082816., 7025313., 7055618., 7085923., 7116228., 7175746.,
      7206172., 7236598., 7267024., 7327147., 7357694., 7388241., 7418788.,
      7479516., 7510184., 7540852., 7571520., 4705757., 4725658., 4745559.,
      4765460., 4803442., 4823420., 4843398., 4863376., 4901743., 4921798.,
      4941853., 4961908., 5000660., 5020792., 5040924., 5061056., 5508712.,
      5530512., 5552312., 5574112., 5618432., 5640320., 5662208., 5684096.,
      5728856., 5750832., 5772808., 5794784., 5839984., 5862048., 5884112.,
      5906176., 7363089., 7394274., 7425459., 7456644., 7517042., 7548348.,
      7579654., 7610960., 7671963., 7703390., 7734817., 7766244., 7827852.,
      7859400., 7890948., 7922496., 7822753., 7855874., 7888995., 7922116.,
      7984450., 8017692., 8050934., 8084176., 8147115., 8180478., 8213841.,
      8247204., 8310748., 8344232., 8377716., 8411200., 4822237., 4843930.,
      4865623., 4887316., 4927090., 4948860., 4970630., 4992400., 5032559.,
      5054406., 5076253., 5098100., 5138644., 5160568., 5182492., 5204416.,
      2415752., 2427856., 2439960., 2452064., 2477824., 2489984., 2502144.,
      2514304., 2540344., 2552560., 2564776., 2576992., 2603312., 2615584.,
      2627856., 2640128., 3234917., 3252330., 3269743., 3287156., 3322074.,
      3339564., 3357054., 3374544., 3409847., 3427414., 3444981., 3462548.,
      3498236., 3515880., 3533524., 3551168., 3510069., 3528714., 3547359.,
      3566004., 3602154., 3620876., 3639598., 3658320., 3694855., 3713654.,
      3732453., 3751252., 3788172., 3807048., 3825924., 3844800., 2164001.,
      2176258., 2188515., 2200772., 2223578., 2235884., 2248190., 2260496.,
      2283547., 2295902., 2308257., 2320612., 2343908., 2356312., 2368716.,
      2381120., 3737736., 3750352., 3762968., 3775584., 3803392., 3816064.,
      3828736., 3841408., 3869496., 3882224., 3894952., 3907680., 3936048.,
      3948832., 3961616., 3974400., 5198565., 5216682., 5234799., 5252916.,
      5291034., 5309228., 5327422., 5345616., 5384119., 5402390., 5420661.,
      5438932., 5477820., 5496168., 5514516., 5532864., 5513653., 5533002.,
      5552351., 5571700., 5611050., 5630476., 5649902., 5669328., 5709063.,
      5728566., 5748069., 5767572., 5807692., 5827272., 5846852., 5866432.,
      3707809., 3720514., 3733219., 3745924., 3771418., 3784172., 3796926.,
      3809680., 3835419., 3848222., 3861025., 3873828., 3899812., 3912664.,
      3925516., 3938368., 5095528., 5117840., 5140152., 5162464., 5207296.,
      5229696., 5252096., 5274496., 5319768., 5342256., 5364744., 5387232.,
      5432944., 5455520., 5478096., 5500672., 6900945., 6932834., 6964723.,
      6996612., 7057714., 7089724., 7121734., 7153744., 7215451., 7247582.,
      7279713., 7311844., 7374156., 7406408., 7438660., 7470912., 7360609.,
      7394434., 7428259., 7462084., 7525122., 7559068., 7593014., 7626960.,
      7690603., 7724670., 7758737., 7792804., 7857052., 7891240., 7925428.,
      7959616., 4722333., 4744474., 4766615., 4788756., 4828978., 4851196.,
      4873414., 4895632., 4936239., 4958534., 4980829., 5003124., 5044116.,
      5066488., 5088860., 5111232., 5503080., 5523344., 5543608., 5563872.,
      5606656., 5627008., 5647360., 5667712., 5710936., 5731376., 5751816.,
      5772256., 5815920., 5836448., 5856976., 5877504., 7528913., 7557986.,
      7587059., 7616132., 7674418., 7703612., 7732806., 7762000., 7820891.,
      7850206., 7879521., 7908836., 7968332., 7997768., 8027204., 8056640.,
      7988577., 8019586., 8050595., 8081604., 8141826., 8172956., 8204086.,
      8235216., 8296043., 8327294., 8358545., 8389796., 8451228., 8482600.,
      8513972., 8545344., 5179293., 5199642., 5219991., 5240340., 5278770.,
      5299196., 5319622., 5340048., 5378863., 5399366., 5419869., 5440372.,
      5479572., 5500152., 5520732., 5541312., 2707080., 2719696., 2732312.,
      2744928., 2771200., 2783872., 2796544., 2809216., 2835768., 2848496.,
      2861224., 2873952., 2900784., 2913568., 2926352., 2939136., 3581733.,
      3599850., 3617967., 3636084., 3671706., 3689900., 3708094., 3726288.,
      3762295., 3780566., 3798837., 3817108., 3853500., 3871848., 3890196.,
      3908544., 3856885., 3876234., 3895583., 3914932., 3951786., 3971212.,
      3990638., 4010064., 4047303., 4066806., 4086309., 4105812., 4143436.,
      4163016., 4182596., 4202176., 2307809., 2320514., 2333219., 2345924.,
      2369178., 2381932., 2394686., 2407440., 2430939., 2443742., 2456545.,
      2469348., 2493092., 2505944., 2518796., 2531648.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824., 6450733., 6478618., 6506503., 6534388., 6591486., 6619492.,
      6647498., 6675504., 6733207., 6761334., 6789461., 6817588., 6875896.,
      6904144., 6932392., 6960640., 6910397., 6940218., 6970039., 6999860.,
      7058894., 7088836., 7118778., 7148720., 7208359., 7238422., 7268485.,
      7298548., 7358792., 7388976., 7419160., 7449344., 7248173., 7278874.,
      7309575., 7340276., 7400190., 7431012., 7461834., 7492656., 7553175.,
      7584118., 7615061., 7646004., 7707128., 7738192., 7769256., 7800320.,
      7707837., 7740474., 7773111., 7805748., 7867598., 7900356., 7933114.,
      7965872., 8028327., 8061206., 8094085., 8126964., 8190024., 8223024.,
      8256024., 8289024., 6786029., 6817434., 6848839., 6880244., 6940862.,
      6972388., 7003914., 7035440., 7096663., 7128310., 7159957., 7191604.,
      7253432., 7285200., 7316968., 7348736., 7245693., 7279034., 7312375.,
      7345716., 7408270., 7441732., 7475194., 7508656., 7571815., 7605398.,
      7638981., 7672564., 7736328., 7770032., 7803736., 7837440., 7413997.,
      7442586., 7471175., 7499764., 7557566., 7586276., 7614986., 7643696.,
      7702103., 7730934., 7759765., 7788596., 7847608., 7876560., 7905512.,
      7934464., 7873661., 7904186., 7934711., 7965236., 8024974., 8055620.,
      8086266., 8116912., 8177255., 8208022., 8238789., 8269556., 8330504.,
      8361392., 8392280., 8423168.};
  const std::array<int, 4> in_shape = {{3, 15, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280574.,  445214.,  470778.,  445830.,  268366.,  608762.,  949366.,
      978890.,  907500.,  538208.,  958034.,  1480798., 1510322., 1386660.,
      816200.,  444822.,  674366.,  686378.,  626010.,  360682.,  1405124.,
      2170784., 2196348., 2005080., 1181236., 1918532., 2942236., 2971760.,
      2704350., 1580678., 2267804., 3473668., 3503192., 3183510., 1858670.,
      987252.,  1485176., 1497188., 1353660., 774592.,  2529674., 3896354.,
      3921918., 3564330., 2094106., 3228302., 4935106., 4964630., 4501200.,
      2623148., 3577574., 5466538., 5496062., 4980360., 2901140., 1529682.,
      2295986., 2307998., 2081310., 1188502.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      949366.,  978890.,  1480798., 1510322., 2942236., 2971760.,
      3473668., 3503192., 4935106., 4964630., 5466538., 5496062.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      558306.,   561148.,  885808.,  890428.,  936628.,   941556.,   886935.,
      891660.,   533813.,  536732.,  1210286., 1217524.,  1887116.,  1898732.,
      1945680.,  1957780., 1803615., 1815000., 1069453.,  1076416.,  1903286.,
      1916068.,  2941268., 2961596., 2999832., 3020644.,  2754015.,  2773320.,
      1620685.,  1632400., 879746.,  889644.,  1333024.,  1348732.,  1356740.,
      1372756.,  1237215., 1252020., 712397.,  721364.,   2794176.,  2810248.,
      4316158.,  4341568., 4366978., 4392696., 3986535.,  4010160.,  2348213.,
      2362472.,  3809036., 3837064., 5840186., 5884472.,  5898750.,  5943520.,
      5367615.,  5408700., 3136573., 3161356., 4502036.,  4535608.,  6894338.,
      6947336.,  6952902., 7006384., 6318015., 6367020.,  3687805.,  3717340.,
      1951376.,  1974504., 2933854., 2970352., 2957570.,  2994376.,  2673615.,
      2707320.,  1528877., 1549184., 5030046., 5059348.,  7746508.,  7792708.,
      7797328.,  7843836., 7086135., 7128660., 4162613.,  4188212.,  6407786.,
      6456604.,  9793256., 9870212., 9851820., 9929260.,  8931615.,  9002400.,
      5203693.,  5246296., 7100786., 7155148., 10847408., 10933076., 10905972.,
      10992124., 9882015., 9960720., 5754925., 5802280.,  3023006.,  3059364.,
      4534684.,  4591972., 4558400., 4615996., 4110015.,  4162620.,  2345357.,
      2377004.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1887116., 1898732., 1945680.,  1957780.,  2941268.,  2961596.,
      2999832., 3020644., 5840186.,  5884472.,  5898750.,  5943520.,
      6894338., 6947336., 6952902.,  7006384.,  9793256.,  9870212.,
      9851820., 9929260., 10847408., 10933076., 10905972., 10992124.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1113770.,  1116612.,  1119454.,  1122296.,  1766996.,  1771616.,
      1776236.,  1780856.,  1868328.,  1873256.,  1878184.,  1883112.,
      1769145.,  1773870.,  1778595.,  1783320.,  1064707.,  1067626.,
      1070545.,  1073464.,  2413334.,  2420572.,  2427810.,  2435048.,
      3762616.,  3774232.,  3785848.,  3797464.,  3879260.,  3891360.,
      3903460.,  3915560.,  3595845.,  3607230.,  3618615.,  3630000.,
      2131943.,  2138906.,  2145869.,  2152832.,  3793790.,  3806572.,
      3819354.,  3832136.,  5862208.,  5882536.,  5902864.,  5923192.,
      5978852.,  5999664.,  6020476.,  6041288.,  5488725.,  5508030.,
      5527335.,  5546640.,  3229655.,  3241370.,  3253085.,  3264800.,
      1749594.,  1759492.,  1769390.,  1779288.,  2650340.,  2666048.,
      2681756.,  2697464.,  2697464.,  2713480.,  2729496.,  2745512.,
      2459625.,  2474430.,  2489235.,  2504040.,  1415827.,  1424794.,
      1433761.,  1442728.,  5572280.,  5588352.,  5604424.,  5620496.,
      8606906.,  8632316.,  8657726.,  8683136.,  8708238.,  8733956.,
      8759674.,  8785392.,  7949445.,  7973070.,  7996695.,  8020320.,
      4682167.,  4696426.,  4710685.,  4724944.,  7590044.,  7618072.,
      7646100.,  7674128.,  11636086., 11680372., 11724658., 11768944.,
      11752730., 11797500., 11842270., 11887040., 10694145., 10735230.,
      10776315., 10817400., 6248363.,  6273146.,  6297929.,  6322712.,
      7289604.,  7319592.,  7349580.,  7379568.,  10474238., 10520068.,
      10565898., 10611728., 9732770.,  9777036.,  9821302.,  9865568.,
      8112145.,  8150910.,  8189675.,  8228440.,  4710299.,  4733690.,
      4757081.,  4780472.,  2829512.,  2849056.,  2868600.,  2888144.,
      3831338.,  3860668.,  3889998.,  3919328.,  3380798.,  3408388.,
      3435978.,  3463568.,  2640885.,  2664350.,  2687815.,  2711280.,
      1483015.,  1497178.,  1511341.,  1525504.,  1576134.,  1580348.,
      1584562.,  1588776.,  2476320.,  2483096.,  2489872.,  2496648.,
      2577652.,  2584736.,  2591820.,  2598904.,  2410065.,  2416750.,
      2423435.,  2430120.,  1439851.,  1443946.,  1448041.,  1452136.,
      2950178.,  2959572.,  2968966.,  2978360.,  4579124.,  4594128.,
      4609132.,  4624136.,  4695768.,  4711256.,  4726744.,  4742232.,
      4331965.,  4346430.,  4360895.,  4375360.,  2558831.,  2567642.,
      2576453.,  2585264.,  4330634.,  4345572.,  4360510.,  4375448.,
      6678716.,  6702432.,  6726148.,  6749864.,  6795360.,  6819560.,
      6843760.,  6867960.,  6224845.,  6247230.,  6269615.,  6292000.,
      3656543.,  3670106.,  3683669.,  3697232.,  1970486.,  1981756.,
      1993026.,  2004296.,  2980208.,  2998072.,  3015936.,  3033800.,
      3027332.,  3045504.,  3063676.,  3081848.,  2755585.,  2772350.,
      2789115.,  2805880.,  1583995.,  1594138.,  1604281.,  1614424.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616.,  3774232.,  3785848.,  3797464.,  3879260.,  3891360.,
      3903460.,  3915560.,  5862208.,  5882536.,  5902864.,  5923192.,
      5978852.,  5999664.,  6020476.,  6041288.,  11636086., 11680372.,
      11724658., 11768944., 11752730., 11797500., 11842270., 11887040.,
      10474238., 10520068., 10565898., 10611728., 9732770.,  9777036.,
      9821302.,  9865568.,  4579124.,  4594128.,  4609132.,  4624136.,
      4695768.,  4711256.,  4726744.,  4742232.,  6678716.,  6702432.,
      6726148.,  6749864.,  6795360.,  6819560.,  6843760.,  6867960.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1108331.,  1122296.,  1758911.,  1780856.,  1860551.,  1883112.,
      1762390.,  1783320.,  1060906.,  1073464.,  2410947.,  2435048.,
      3759591.,  3797464.,  3876719.,  3915560.,  3594030.,  3630000.,
      2131250.,  2152832.,  3796947.,  3832136.,  5867895.,  5923192.,
      5985023.,  6041288.,  5494830.,  5546640.,  3233714.,  3264800.,
      1755523.,  1779288.,  2660119.,  2697464.,  2707551.,  2745512.,
      2469110.,  2504040.,  1421770.,  1442728.,  5580071.,  5620496.,
      8619611.,  8683136.,  8721251.,  8785392.,  7961590.,  8020320.,
      4689706.,  4724944.,  7608447.,  7674128.,  11665731., 11768944.,
      11782859., 11887040., 10722030., 10817400., 6265490.,  6322712.,
      7309967.,  7379568.,  10505427., 10611728., 9762395.,  9865568.,
      8137710.,  8228440.,  4726034.,  4780472.,  2845087.,  2888144.,
      3854739.,  3919328.,  3402459.,  3463568.,  2659030.,  2711280.,
      1494154.,  1525504.,  1572067.,  1588776.,  2470391.,  2496648.,
      2572031.,  2598904.,  2405270.,  2430120.,  1437226.,  1452136.,
      2949947.,  2978360.,  4579487.,  4624136.,  4696615.,  4742232.,
      4333230.,  4375360.,  2559986.,  2585264.,  4335947.,  4375448.,
      6687791.,  6749864.,  6804919.,  6867960.,  6234030.,  6292000.,
      3662450.,  3697232.,  1977787.,  2004296.,  2992143.,  3033800.,
      3039575.,  3081848.,  2767030.,  2805880.,  1591114.,  1614424.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3759591.,  3797464.,  3876719.,  3915560.,  5867895.,  5923192.,
      5985023.,  6041288.,  11665731., 11768944., 11782859., 11887040.,
      10505427., 10611728., 9762395.,  9865568.,  4579487.,  4624136.,
      4696615.,  4742232.,  6687791.,  6749864.,  6804919.,  6867960.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2211027., 2216662., 2238908.,  2244592.,  3508659.,  3517822.,  3552472.,
      3561712., 3711323., 3721102.,  3756368.,  3766224.,  3515400.,  3524780.,
      3557190., 3566640., 2116016.,  2121812.,  2141090.,  2146928.,  4807495.,
      4821894., 4855620., 4870096.,  7496071.,  7519182.,  7571696.,  7594928.,
      7729359., 7753438., 7806920.,  7831120.,  7165400.,  7188060.,  7237230.,
      7260000., 4248640., 4262500.,  4291738.,  4305664.,  6835735.,  6859686.,
      6902964., 6926992., 10014359., 10051310., 10117664., 10154736., 9332191.,
      9368062., 9433336., 9469328.,  8601080.,  8634460.,  8694350.,  8727840.,
      5058592., 5078884., 5114554.,  5134912.,  3028963.,  3047174.,  3073372.,
      3091632., 4238787., 4266542.,  4306232.,  4334064.,  3778027.,  3804350.,
      3842608., 3869008., 3459720.,  3484140.,  3519270.,  3543760.,  1980848.,
      1995668., 2016578., 2031440.,  2673391.,  2680398.,  2704016.,  2711072.,
      4217983., 4229302., 4266108.,  4277504.,  4420647.,  4432582.,  4470004.,
      4482016., 4156320., 4167660.,  4202030.,  4213440.,  2491160.,  2498132.,
      2518586., 2525600., 5344339.,  5360894.,  5396776.,  5413408.,  8312579.,
      8339078., 8394980., 8421600.,  8545867.,  8573334.,  8630204.,  8657792.,
      7901520., 7927260., 7979510.,  8005360.,  4675528.,  4691236.,  4722322.,
      4738096., 6424355., 6448414.,  6491800.,  6515936.,  9250323.,  9287078.,
      9353236., 9390112., 8625499.,  8661174.,  8726252.,  8762048.,  7212400.,
      7243740., 7301590., 7333040.,  4235176.,  4254244.,  4288690.,  4307824.,
      2662079., 2679614., 2705136.,  2722720.,  3618895.,  3645222.,  3683484.,
      3709888., 3215479., 3240374.,  3277204.,  3302176.,  2532000.,  2553260.,
      2585230., 2606560., 1439384.,  1452308.,  1471322.,  1484288.,  3135755.,
      3144134., 3169124., 3177552.,  4927307.,  4940782.,  4979744.,  4993296.,
      5129971., 5144062., 5183640.,  5197808.,  4797240.,  4810540.,  4846870.,
      4860240., 2866304., 2874452.,  2896082.,  2904272.,  5881183.,  5899894.,
      5937932., 5956720., 9129087.,  9158974.,  9218264.,  9248272.,  9362375.,
      9393230., 9453488., 9484464.,  8637640.,  8666460.,  8721790.,  8750720.,
      5102416., 5119972., 5152906.,  5170528.,  5437999.,  5460630.,  5502588.,
      5525296., 8383375., 8419422.,  8484872.,  8521040.,  8019159.,  8054638.,
      8119520., 8155120., 6784232.,  6815580.,  6873438.,  6904896.,  3546928.,
      3564772., 3597994., 3615904.,  1990555.,  2005878.,  2029188.,  2044560.,
      2986203., 3010590., 3046912.,  3071376.,  2753283.,  2776750.,  2812152.,
      2835696., 2204344., 2224492.,  2255350.,  2275568.,  1033088.,  1044116.,
      1061234., 1072304.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071., 7519182.,  7571696.,  7594928.,  7729359.,  7753438., 7806920.,
      7831120., 10014359., 10051310., 10117664., 10154736., 9332191., 9368062.,
      9433336., 9469328.,  8312579.,  8339078.,  8394980.,  8421600., 8545867.,
      8573334., 8630204.,  8657792.,  9250323.,  9287078.,  9353236., 9390112.,
      8625499., 8661174.,  8726252.,  8762048.,  9129087.,  9158974., 9218264.,
      9248272., 9362375.,  9393230.,  9453488.,  9484464.,  8383375., 8419422.,
      8484872., 8521040.,  8019159.,  8054638.,  8119520.,  8155120.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1661347., 1666982., 1672617., 1678252., 1698116., 1703800., 1709484.,
      1715168., 2586011., 2595174., 2604337., 2613500., 2644376., 2653616.,
      2662856., 2672096., 2757251., 2767030., 2776809., 2786588., 2818080.,
      2827936., 2837792., 2847648., 2633068., 2642448., 2651828., 2661208.,
      2690466., 2699916., 2709366., 2718816., 1553596., 1559392., 1565188.,
      1570984., 1588342., 1594180., 1600018., 1605856., 4117583., 4131982.,
      4146381., 4160780., 4194812., 4209288., 4223764., 4238240., 6344391.,
      6367502., 6390613., 6413724., 6466336., 6489568., 6512800., 6536032.,
      6576527., 6600606., 6624685., 6648764., 6702344., 6726544., 6750744.,
      6774944., 6159660., 6182320., 6204980., 6227640., 6277098., 6299868.,
      6322638., 6345408., 3598940., 3612800., 3626660., 3640520., 3669710.,
      3683636., 3697562., 3711488., 6223007., 6246958., 6270909., 6294860.,
      6338444., 6362472., 6386500., 6410528., 8999639., 9036590., 9073541.,
      9110492., 9176944., 9214016., 9251088., 9288160., 8451487., 8487358.,
      8523229., 8559100., 8624472., 8660464., 8696456., 8732448., 7881612.,
      7914992., 7948372., 7981752., 8041930., 8075420., 8108910., 8142400.,
      4573436., 4593728., 4614020., 4634312., 4669934., 4690292., 4710650.,
      4731008., 4503203., 4521414., 4539625., 4557836., 4587364., 4605624.,
      4623884., 4642144., 6884635., 6912390., 6940145., 6967900., 7012792.,
      7040624., 7068456., 7096288., 6959875., 6986198., 7012521., 7038844.,
      7082304., 7108704., 7135104., 7161504., 6545324., 6569744., 6594164.,
      6618584., 6658722., 6683212., 6707702., 6732192., 3879292., 3894112.,
      3908932., 3923752., 3947638., 3962500., 3977362., 3992224., 2054271.,
      2061278., 2068285., 2075292., 2096528., 2103584., 2110640., 2117696.,
      3185351., 3196670., 3207989., 3219308., 3252340., 3263736., 3275132.,
      3286528., 3356591., 3368526., 3380461., 3392396., 3426044., 3438056.,
      3450068., 3462080., 3181812., 3193152., 3204492., 3215832., 3247050.,
      3258460., 3269870., 3281280., 1872628., 1879600., 1886572., 1893544.,
      1912078., 1919092., 1926106., 1933120., 4658683., 4675238., 4691793.,
      4708348., 4744536., 4761168., 4777800., 4794432., 7156867., 7183366.,
      7209865., 7236364., 7292364., 7318984., 7345604., 7372224., 7389003.,
      7416470., 7443937., 7471404., 7528372., 7555960., 7583548., 7611136.,
      6897684., 6923424., 6949164., 6974904., 7027442., 7053292., 7079142.,
      7104992., 4020788., 4036496., 4052204., 4067912., 4098950., 4114724.,
      4130498., 4146272., 5918283., 5942342., 5966401., 5990460., 6034152.,
      6058288., 6082424., 6106560., 8489619., 8526374., 8563129., 8599884.,
      8666140., 8703016., 8739892., 8776768., 8056155., 8091830., 8127505.,
      8163180., 8228356., 8264152., 8299948., 8335744., 6996596., 7027936.,
      7059276., 7090616., 7148754., 7180204., 7211654., 7243104., 4070612.,
      4089680., 4108748., 4127816., 4162214., 4181348., 4200482., 4219616.,
      4689663., 4707198., 4724733., 4742268., 4771120., 4788704., 4806288.,
      4823872., 7032775., 7059102., 7085429., 7111756., 7155220., 7181624.,
      7208028., 7234432., 6174127., 6199022., 6223917., 6248812., 6290844.,
      6315816., 6340788., 6365760., 4797492., 4818752., 4840012., 4861272.,
      4898250., 4919580., 4940910., 4962240., 2712244., 2725168., 2738092.,
      2751016., 2773006., 2785972., 2798938., 2811904., 2447195., 2455574.,
      2463953., 2472332., 2494940., 2503368., 2511796., 2520224., 3784691.,
      3798166., 3811641., 3825116., 3860304., 3873856., 3887408., 3900960.,
      3955931., 3970022., 3984113., 3998204., 4034008., 4048176., 4062344.,
      4076512., 3730556., 3743856., 3757156., 3770456., 3803634., 3817004.,
      3830374., 3843744., 2191660., 2199808., 2207956., 2216104., 2235814.,
      2244004., 2252194., 2260384., 5199783., 5218494., 5237205., 5255916.,
      5294260., 5313048., 5331836., 5350624., 7969343., 7999230., 8029117.,
      8059004., 8118392., 8148400., 8178408., 8208416., 8201479., 8232334.,
      8263189., 8294044., 8354400., 8385376., 8416352., 8447328., 7635708.,
      7664528., 7693348., 7722168., 7777786., 7806716., 7835646., 7864576.,
      4442636., 4460192., 4477748., 4495304., 4528190., 4545812., 4563434.,
      4581056., 5251575., 5274206., 5296837., 5319468., 5361732., 5384440.,
      5407148., 5429856., 8036431., 8072478., 8108525., 8144572., 8210120.,
      8246288., 8282456., 8318624., 7861527., 7897006., 7932485., 7967964.,
      8032944., 8068544., 8104144., 8139744., 6981980., 7013328., 7044676.,
      7076024., 7134170., 7165628., 7197086., 7228544., 3838124., 3855968.,
      3873812., 3891656., 3924830., 3942740., 3960650., 3978560., 3744091.,
      3759414., 3774737., 3790060., 3816700., 3832072., 3847444., 3862816.,
      5582963., 5607350., 5631737., 5656124., 5697648., 5722112., 5746576.,
      5771040., 5064795., 5088262., 5111729., 5135196., 5175800., 5199344.,
      5222888., 5246432., 3985596., 4005744., 4025892., 4046040., 4081906.,
      4102124., 4122342., 4142560., 1815532., 1826560., 1837588., 1848616.,
      1868710., 1879780., 1890850., 1901920.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391., 6367502., 6390613., 6413724., 6466336., 6489568., 6512800.,
      6536032., 6576527., 6600606., 6624685., 6648764., 6702344., 6726544.,
      6750744., 6774944., 8999639., 9036590., 9073541., 9110492., 9176944.,
      9214016., 9251088., 9288160., 8451487., 8487358., 8523229., 8559100.,
      8624472., 8660464., 8696456., 8732448., 7156867., 7183366., 7209865.,
      7236364., 7292364., 7318984., 7345604., 7372224., 7389003., 7416470.,
      7443937., 7471404., 7528372., 7555960., 7583548., 7611136., 8489619.,
      8526374., 8563129., 8599884., 8666140., 8703016., 8739892., 8776768.,
      8056155., 8091830., 8127505., 8163180., 8228356., 8264152., 8299948.,
      8335744., 7969343., 7999230., 8029117., 8059004., 8118392., 8148400.,
      8178408., 8208416., 8201479., 8232334., 8263189., 8294044., 8354400.,
      8385376., 8416352., 8447328., 8036431., 8072478., 8108525., 8144572.,
      8210120., 8246288., 8282456., 8318624., 7861527., 7897006., 7932485.,
      7967964., 8032944., 8068544., 8104144., 8139744.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4405541., 4433324., 4461205., 4489184., 6991985., 7035644., 7079457.,
      7123424., 7397313., 7442204., 7487249., 7532448., 7007910., 7049560.,
      7091350., 7133280., 4218634., 4243624., 4268698., 4293856., 4153257.,
      4187916., 4222729., 4257696., 6382885., 6436764., 6490885., 6545248.,
      6530997., 6585788., 6640821., 6696096., 6255870., 6307000., 6358350.,
      6409920., 3751154., 3781832., 3812642., 3843584., 5507913., 5548876.,
      5589993., 5631264., 7986501., 8049116., 8111973., 8175072., 7399381.,
      7460860., 7522581., 7584544., 7033150., 7090360., 7147790., 7205440.,
      4188338., 4222664., 4257122., 4291712., 2473205., 2493964., 2514821.,
      2535776., 3484033., 3515484., 3547089., 3578848., 3117521., 3148156.,
      3178945., 3209888., 2945990., 2974680., 3003510., 3032480., 1725418.,
      1742632., 1759930., 1777312., 5083997., 5114012., 5144125., 5174336.,
      7199753., 7245164., 7290729., 7336448., 6673241., 6717836., 6762585.,
      6807488., 5939670., 5980120., 6020710., 6061440., 3583450., 3607720.,
      3632074., 3656512., 4735937., 4773372., 4810961., 4848704., 6937117.,
      6994188., 7051501., 7109056., 6832301., 6889260., 6946461., 7003904.,
      6279150., 6331320., 6383710., 6436320., 3760130., 3791432., 3822866.,
      3854432., 5412705., 5454396., 5496241., 5538240., 7590973., 7653196.,
      7715661., 7778368., 6988493., 7048556., 7108861., 7169408., 5832750.,
      5885880., 5939230., 5992800., 3487682., 3519560., 3551570., 3583712.,
      2327213., 2348668., 2370221., 2391872., 3194009., 3226188., 3258521.,
      3291008., 2884841., 2916204., 2947721., 2979392., 2314230., 2341720.,
      2369350., 2397120., 1352122., 1368616., 1385194., 1401856., 4574101.,
      4603788., 4633573., 4663456., 7009185., 7055324., 7101617., 7148064.,
      6540017., 6585340., 6630817., 6676448., 5505286., 5545560., 5585974.,
      5626528., 3083434., 3106984., 3130618., 3154336., 4915673., 4954348.,
      4993177., 5032160., 7591701., 7651964., 7712469., 7773216., 7544229.,
      7604380., 7664773., 7725408., 6756062., 6810296., 6864750., 6919424.,
      3904274., 3936200., 3968258., 4000448., 4609913., 4649260., 4688761.,
      4728416., 7192885., 7254204., 7315765., 7377568., 6908357., 6968028.,
      7027941., 7088096., 5866270., 5918392., 5970734., 6023296., 3057362.,
      3086792., 3116354., 3146048., 1876581., 1897196., 1917909., 1938720.,
      2891185., 2923580., 2956129., 2988832., 2752513., 2784604., 2816849.,
      2849248., 2282534., 2310872., 2339350., 2367968., 1113994., 1129768.,
      1145626., 1161568.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788., 6640821.,
      6696096., 7986501., 8049116., 8111973., 8175072., 7399381., 7460860.,
      7522581., 7584544., 6937117., 6994188., 7051501., 7109056., 6832301.,
      6889260., 6946461., 7003904., 7590973., 7653196., 7715661., 7778368.,
      6988493., 7048556., 7108861., 7169408., 7591701., 7651964., 7712469.,
      7773216., 7544229., 7604380., 7664773., 7725408., 7192885., 7254204.,
      7315765., 7377568., 6908357., 6968028., 7027941., 7088096.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3308661., 3319882., 3345234., 3356504., 3382003., 3393322., 3418968.,
      3430336., 5150617., 5168866., 5208674., 5227000., 5267039., 5285442.,
      5325712., 5344192., 5493097., 5512578., 5553618., 5573176., 5614447.,
      5634082., 5675584., 5695296., 5246538., 5265228., 5303656., 5322416.,
      5361054., 5379884., 5418732., 5437632., 3095798., 3107348., 3130376.,
      3141968., 3165122., 3176756., 3200036., 3211712., 4159777., 4175186.,
      4210074., 4225560., 4260679., 4276242., 4311592., 4327232., 6531125.,
      6555722., 6609578., 6634296., 6688515., 6713354., 6767936., 6792896.,
      6883781., 6909290., 6964058., 6989688., 7044819., 7070570., 7126064.,
      7151936., 6701922., 6726652., 6777960., 6802800., 6854438., 6879388.,
      6931356., 6956416., 4024798., 4040164., 4070728., 4086160., 4116922.,
      4132420., 4163380., 4178944., 5076929., 5098642., 5139834., 5161624.,
      5203047., 5224914., 5266568., 5288512., 7091797., 7125130., 7187722.,
      7221176., 7284131., 7317706., 7381024., 7414720., 6500325., 6532522.,
      6593978., 6626296., 6688115., 6720554., 6782736., 6815296., 6235170.,
      6265980., 6323368., 6354288., 6412006., 6443036., 6501084., 6532224.,
      3617566., 3636580., 3670792., 3689872., 3724282., 3743428., 3778036.,
      3797248., 3438037., 3450858., 3474898., 3487768., 3511955., 3524874.,
      3549208., 3562176., 5397625., 5417218., 5453794., 5473464., 5510271.,
      5530018., 5567056., 5586880., 5607497., 5626274., 5662034., 5680888.,
      5716879., 5735810., 5772032., 5791040., 5442314., 5460364., 5493992.,
      5512112., 5545950., 5564140., 5598188., 5616448., 3307574., 3318740.,
      3338888., 3350096., 3370370., 3381620., 3402020., 3413312., 3864621.,
      3878074., 3905658., 3919160., 3946891., 3960442., 3988320., 4001920.,
      5240817., 5260818., 5302378., 5322456., 5364247., 5384402., 5426424.,
      5446656., 4770241., 4789426., 4830170., 4849432., 4890407., 4909746.,
      4950952., 4970368., 4270426., 4287916., 4325144., 4342704., 4380142.,
      4397772., 4435420., 4453120., 2538854., 2549684., 2571992., 2582864.,
      2605298., 2616212., 2638772., 2649728., 5047929., 5066114., 5103778.,
      5122040., 5159935., 5178274., 5216400., 5234816., 7837101., 7864890.,
      7921938., 7949848., 8007259., 8035290., 8093064., 8121216., 8209213.,
      8236890., 8293826., 8321624., 8378923., 8406842., 8464504., 8492544.,
      7906610., 7932380., 7984728., 8010608., 8063286., 8089276., 8142284.,
      8168384., 4754830., 4770820., 4802008., 4818064., 4849450., 4865572.,
      4897156., 4913344., 4873497., 4895938., 4937858., 4960376., 5002527.,
      5025122., 5067504., 5090176., 6501837., 6534778., 6596978., 6630040.,
      6692603., 6725786., 6788712., 6822016., 5880669., 5911450., 5971490.,
      6002392., 6062795., 6093818., 6154584., 6185728., 4997618., 5024348.,
      5077656., 5104496., 5158134., 5185084., 5239052., 5266112., 2931406.,
      2947972., 2979736., 2996368., 3028330., 3045028., 3077188., 3093952.,
      3935885., 3949402., 3974138., 3987704., 4012587., 4026202., 4051232.,
      4064896., 6016977., 6037298., 6074602., 6095000., 6132535., 6153010.,
      6190776., 6211328., 5292961., 5312466., 5348954., 5368536., 5405255.,
      5424914., 5461864., 5481600., 4126746., 4143596., 4176024., 4192944.,
      4225582., 4242572., 4275420., 4292480., 2389670., 2400116., 2419544.,
      2430032., 2449586., 2460116., 2479796., 2490368., 3357157., 3370282.,
      3397538., 3410712., 3438115., 3451338., 3478888., 3492160., 5059657.,
      5080386., 5122674., 5143480., 5185999., 5206882., 5249632., 5270592.,
      4703769., 4723682., 4765154., 4785144., 4826847., 4846914., 4888848.,
      4908992., 4036714., 4054028., 4091080., 4108464., 4145726., 4163180.,
      4200652., 4218176., 2252246., 2262356., 2283944., 2294096., 2315810.,
      2326004., 2347844., 2358080., 5918161., 5937586., 5976490., 5995992.,
      6035127., 6054706., 6094072., 6113728., 9343781., 9374762., 9435002.,
      9466104., 9526707., 9557930., 9618896., 9650240., 9044149., 9075018.,
      9135146., 9166136., 9226627., 9257738., 9318592., 9349824., 7658242.,
      7686076., 7740488., 7768432., 7823174., 7851228., 7906300., 7934464.,
      4182334., 4198948., 4230760., 4247440., 4279450., 4296196., 4328404.,
      4345216., 4044401., 4064498., 4104074., 4124248., 4164055., 4184306.,
      4224344., 4244672., 6169413., 6201450., 6262746., 6294904., 6356563.,
      6388842., 6450864., 6483264., 5921493., 5951882., 6011530., 6042040.,
      6102051., 6132682., 6193056., 6223808., 5176258., 5201980., 5254280.,
      5280112., 5332742., 5358684., 5411644., 5437696., 2785918., 2800036.,
      2829352., 2843536., 2873050., 2887300., 2917012., 2931328., 3301701.,
      3314378., 3338274., 3351000., 3375043., 3387818., 3412008., 3424832.,
      5038377., 5058914., 5096434., 5117048., 5154799., 5175490., 5213472.,
      5234240., 4654841., 4675074., 4712290., 4732600., 4770047., 4790434.,
      4828112., 4848576., 3747114., 3764812., 3798088., 3815856., 3849342.,
      3867180., 3900876., 3918784., 1742102., 1751828., 1770536., 1780304.,
      1799138., 1808948., 1827908., 1837760.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296., 7837101., 7864890., 7921938.,
      7949848., 8007259., 8035290., 8093064., 8121216., 8209213., 8236890.,
      8293826., 8321624., 8378923., 8406842., 8464504., 8492544., 6501837.,
      6534778., 6596978., 6630040., 6692603., 6725786., 6788712., 6822016.,
      5880669., 5911450., 5971490., 6002392., 6062795., 6093818., 6154584.,
      6185728., 9343781., 9374762., 9435002., 9466104., 9526707., 9557930.,
      9618896., 9650240., 9044149., 9075018., 9135146., 9166136., 9226627.,
      9257738., 9318592., 9349824., 6169413., 6201450., 6262746., 6294904.,
      6356563., 6388842., 6450864., 6483264., 5921493., 5951882., 6011530.,
      6042040., 6102051., 6132682., 6193056., 6223808.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x15x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945813., 2957034., 2968255., 2979476., 3004062., 3015332., 3026602.,
      3037872., 3062703., 3074022., 3085341., 3096660., 3121736., 3133104.,
      3144472., 3155840., 4558313., 4576562., 4594811., 4613060., 4651310.,
      4669636., 4687962., 4706288., 4744923., 4763326., 4781729., 4800132.,
      4839152., 4857632., 4876112., 4894592., 4873401., 4892882., 4912363.,
      4931844., 4971326., 4990884., 5010442., 5030000., 5069867., 5089502.,
      5109137., 5128772., 5169024., 5188736., 5208448., 5228160., 4714898.,
      4733588., 4752278., 4770968., 4808072., 4826832., 4845592., 4864352.,
      4901806., 4920636., 4939466., 4958296., 4996100., 5015000., 5033900.,
      5052800., 2800846., 2812396., 2823946., 2835496., 2857672., 2869264.,
      2880856., 2892448., 2914834., 2926468., 2938102., 2949736., 2972332.,
      2984008., 2995684., 3007360., 3916817., 3932226., 3947635., 3963044.,
      3998390., 4013876., 4029362., 4044848., 4080579., 4096142., 4111705.,
      4127268., 4163384., 4179024., 4194664., 4210304., 5801557., 5826154.,
      5850751., 5875348., 5929158., 5953876., 5978594., 6003312., 6057727.,
      6082566., 6107405., 6132244., 6187264., 6212224., 6237184., 6262144.,
      6039013., 6064522., 6090031., 6115540., 6170262., 6195892., 6221522.,
      6247152., 6302479., 6328230., 6353981., 6379732., 6435664., 6461536.,
      6487408., 6513280., 5974058., 5998788., 6023518., 6048248., 6099912.,
      6124752., 6149592., 6174432., 6226646., 6251596., 6276546., 6301496.,
      6354260., 6379320., 6404380., 6429440., 3417014., 3432380., 3447746.,
      3463112., 3493448., 3508880., 3524312., 3539744., 3570410., 3585908.,
      3601406., 3616904., 3647900., 3663464., 3679028., 3694592., 5531825.,
      5553538., 5575251., 5596964., 5638614., 5660404., 5682194., 5703984.,
      5746019., 5767886., 5789753., 5811620., 5854040., 5875984., 5897928.,
      5919872., 7946357., 7979690., 8013023., 8046356., 8108902., 8142356.,
      8175810., 8209264., 8272415., 8305990., 8339565., 8373140., 8436896.,
      8470592., 8504288., 8537984., 7870469., 7902666., 7934863., 7967060.,
      8028470., 8060788., 8093106., 8125424., 8187439., 8219878., 8252317.,
      8284756., 8347376., 8379936., 8412496., 8445056., 7737834., 7768644.,
      7799454., 7830264., 7888008., 7918928., 7949848., 7980768., 8039062.,
      8070092., 8101122., 8132152., 8190996., 8222136., 8253276., 8284416.,
      4466678., 4485692., 4504706., 4523720., 4557704., 4576784., 4595864.,
      4614944., 4649258., 4668404., 4687550., 4706696., 4741340., 4760552.,
      4779764., 4798976., 3277205., 3290026., 3302847., 3315668., 3340638.,
      3353508., 3366378., 3379248., 3404463., 3417382., 3430301., 3443220.,
      3468680., 3481648., 3494616., 3507584., 4820073., 4839666., 4859259.,
      4878852., 4915950., 4935620., 4955290., 4974960., 5012443., 5032190.,
      5051937., 5071684., 5109552., 5129376., 5149200., 5169024., 4978489.,
      4997266., 5016043., 5034820., 5071102., 5089956., 5108810., 5127664.,
      5164331., 5183262., 5202193., 5221124., 5258176., 5277184., 5296192.,
      5315200., 4928914., 4946964., 4965014., 4983064., 5017352., 5035472.,
      5053592., 5071712., 5106350., 5124540., 5142730., 5160920., 5195908.,
      5214168., 5232428., 5250688., 2816206., 2827372., 2838538., 2849704.,
      2869576., 2880784., 2891992., 2903200., 2923282., 2934532., 2945782.,
      2957032., 2977324., 2988616., 2999908., 3011200., 3486157., 3499610.,
      3513063., 3526516., 3553334., 3566836., 3580338., 3593840., 3620903.,
      3634454., 3648005., 3661556., 3688864., 3702464., 3716064., 3729664.,
      4757441., 4777442., 4797443., 4817444., 4857446., 4877524., 4897602.,
      4917680., 4958067., 4978222., 4998377., 5018532., 5059304., 5079536.,
      5099768., 5120000., 4497041., 4516226., 4535411., 4554596., 4593782.,
      4613044., 4632306., 4651568., 4691139., 4710478., 4729817., 4749156.,
      4789112., 4808528., 4827944., 4847360., 4209762., 4227252., 4244742.,
      4262232., 4298136., 4315696., 4333256., 4350816., 4387070., 4404700.,
      4422330., 4439960., 4476564., 4494264., 4511964., 4529664., 2572414.,
      2583244., 2594074., 2604904., 2626360., 2637232., 2648104., 2658976.,
      2680642., 2691556., 2702470., 2713384., 2735260., 2746216., 2757172.,
      2768128., 4629481., 4647666., 4665851., 4684036., 4722158., 4740420.,
      4758682., 4776944., 4815451., 4833790., 4852129., 4870468., 4909360.,
      4927776., 4946192., 4964608., 6776013., 6803802., 6831591., 6859380.,
      6916382., 6944292., 6972202., 7000112., 7057719., 7085750., 7113781.,
      7141812., 7200024., 7228176., 7256328., 7284480., 7053405., 7081082.,
      7108759., 7136436., 7193326., 7221124., 7248922., 7276720., 7334215.,
      7362134., 7390053., 7417972., 7476072., 7504112., 7532152., 7560192.,
      6920122., 6945892., 6971662., 6997432., 7050136., 7076016., 7101896.,
      7127776., 7181030., 7207020., 7233010., 7259000., 7312804., 7338904.,
      7365004., 7391104., 4016294., 4032284., 4048274., 4064264., 4095224.,
      4111280., 4127336., 4143392., 4174682., 4190804., 4206926., 4223048.,
      4254668., 4270856., 4287044., 4303232., 5898377., 5920818., 5943259.,
      5965700., 6008078., 6030596., 6053114., 6075632., 6118395., 6140990.,
      6163585., 6186180., 6229328., 6252000., 6274672., 6297344., 7753965.,
      7786906., 7819847., 7852788., 7914942., 7948004., 7981066., 8014128.,
      8076887., 8110070., 8143253., 8176436., 8239800., 8273104., 8306408.,
      8339712., 7095421., 7126202., 7156983., 7187764., 7247758., 7278660.,
      7309562., 7340464., 7401063., 7432086., 7463109., 7494132., 7555336.,
      7586480., 7617624., 7648768., 6425978., 6452708., 6479438., 6506168.,
      6559832., 6586672., 6613512., 6640352., 6694566., 6721516., 6748466.,
      6775416., 6830180., 6857240., 6884300., 6911360., 3809510., 3826076.,
      3842642., 3859208., 3890744., 3907376., 3924008., 3940640., 3972506.,
      3989204., 4005902., 4022600., 4054796., 4071560., 4088324., 4105088.,
      3698765., 3712282., 3725799., 3739316., 3764982., 3778548., 3792114.,
      3805680., 3831591., 3845206., 3858821., 3872436., 3898592., 3912256.,
      3925920., 3939584., 5402689., 5423010., 5443331., 5463652., 5501478.,
      5521876., 5542274., 5562672., 5600883., 5621358., 5641833., 5662308.,
      5700904., 5721456., 5742008., 5762560., 4741905., 4761410., 4780915.,
      4800420., 4837430., 4857012., 4876594., 4896176., 4933571., 4953230.,
      4972889., 4992548., 5030328., 5050064., 5069800., 5089536., 3826786.,
      3843636., 3860486., 3877336., 3910424., 3927344., 3944264., 3961184.,
      3994622., 4011612., 4028602., 4045592., 4079380., 4096440., 4113500.,
      4130560., 2037886., 2048332., 2058778., 2069224., 2088376., 2098864.,
      2109352., 2119840., 2139202., 2149732., 2160262., 2170792., 2190364.,
      2200936., 2211508., 2222080., 3212933., 3226058., 3239183., 3252308.,
      3278798., 3291972., 3305146., 3318320., 3345055., 3358278., 3371501.,
      3384724., 3411704., 3424976., 3438248., 3451520., 4939161., 4959890.,
      4980619., 5001348., 5042078., 5062884., 5083690., 5104496., 5145611.,
      5166494., 5187377., 5208260., 5249760., 5270720., 5291680., 5312640.,
      4908137., 4928050., 4947963., 4967876., 5007790., 5027780., 5047770.,
      5067760., 5108059., 5128126., 5148193., 5168260., 5208944., 5229088.,
      5249232., 5269376., 4664114., 4681428., 4698742., 4716056., 4751784.,
      4769168., 4786552., 4803936., 4840014., 4857468., 4874922., 4892376.,
      4928804., 4946328., 4963852., 4981376., 2884654., 2894764., 2904874.,
      2914984., 2935720., 2945872., 2956024., 2966176., 2987122., 2997316.,
      3007510., 3017704., 3038860., 3049096., 3059332., 3069568., 5307841.,
      5327266., 5346691., 5366116., 5405478., 5424980., 5444482., 5463984.,
      5503731., 5523310., 5542889., 5562468., 5602600., 5622256., 5641912.,
      5661568., 8151877., 8182858., 8213839., 8244820., 8305014., 8336116.,
      8367218., 8398320., 8459119., 8490342., 8521565., 8552788., 8614192.,
      8645536., 8676880., 8708224., 7872213., 7903082., 7933951., 7964820.,
      8024902., 8055892., 8086882., 8117872., 8178559., 8209670., 8240781.,
      8271892., 8333184., 8364416., 8395648., 8426880., 6794058., 6821892.,
      6849726., 6877560., 6932328., 6960272., 6988216., 7016160., 7071478.,
      7099532., 7127586., 7155640., 7211508., 7239672., 7267836., 7296000.,
      3583382., 3599996., 3616610., 3633224., 3664808., 3681488., 3698168.,
      3714848., 3746762., 3763508., 3780254., 3797000., 3829244., 3846056.,
      3862868., 3879680., 5016673., 5036770., 5056867., 5076964., 5116998.,
      5137172., 5157346., 5177520., 5217939., 5238190., 5258441., 5278692.,
      5319496., 5339824., 5360152., 5380480., 7552869., 7584906., 7616943.,
      7648980., 7710230., 7742388., 7774546., 7806704., 7868559., 7900838.,
      7933117., 7965396., 8027856., 8060256., 8092656., 8125056., 7378165.,
      7408554., 7438943., 7469332., 7528934., 7559444., 7589954., 7620464.,
      7680671., 7711302., 7741933., 7772564., 7833376., 7864128., 7894880.,
      7925632., 5846282., 5872004., 5897726., 5923448., 5976104., 6001936.,
      6027768., 6053600., 6106806., 6132748., 6158690., 6184632., 6238388.,
      6264440., 6290492., 6316544., 2660822., 2674940., 2689058., 2703176.,
      2732264., 2746448., 2760632., 2774816., 2804234., 2818484., 2832734.,
      2846984., 2876732., 2891048., 2905364., 2919680., 3168517., 3181194.,
      3193871., 3206548., 3231374., 3244100., 3256826., 3269552., 3294623.,
      3307398., 3320173., 3332948., 3358264., 3371088., 3383912., 3396736.,
      4624921., 4645458., 4665995., 4686532., 4724574., 4745188., 4765802.,
      4786416., 4824843., 4845534., 4866225., 4886916., 4925728., 4946496.,
      4967264., 4988032., 4382441., 4402674., 4422907., 4443140., 4480878.,
      4501188., 4521498., 4541808., 4579931., 4600318., 4620705., 4641092.,
      4679600., 4700064., 4720528., 4740992., 3808050., 3825748., 3843446.,
      3861144., 3895080., 3912848., 3930616., 3948384., 3982670., 4000508.,
      4018346., 4036184., 4070820., 4088728., 4106636., 4124544., 1800238.,
      1809964., 1819690., 1829416., 1847848., 1857616., 1867384., 1877152.,
      1895794., 1905604., 1915414., 1925224., 1944076., 1953928., 1963780.,
      1973632.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x15x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056., 6776013., 6803802., 6831591., 6859380., 6916382., 6944292.,
      6972202., 7000112., 7057719., 7085750., 7113781., 7141812., 7200024.,
      7228176., 7256328., 7284480., 7053405., 7081082., 7108759., 7136436.,
      7193326., 7221124., 7248922., 7276720., 7334215., 7362134., 7390053.,
      7417972., 7476072., 7504112., 7532152., 7560192., 7753965., 7786906.,
      7819847., 7852788., 7914942., 7948004., 7981066., 8014128., 8076887.,
      8110070., 8143253., 8176436., 8239800., 8273104., 8306408., 8339712.,
      7095421., 7126202., 7156983., 7187764., 7247758., 7278660., 7309562.,
      7340464., 7401063., 7432086., 7463109., 7494132., 7555336., 7586480.,
      7617624., 7648768., 8151877., 8182858., 8213839., 8244820., 8305014.,
      8336116., 8367218., 8398320., 8459119., 8490342., 8521565., 8552788.,
      8614192., 8645536., 8676880., 8708224., 7872213., 7903082., 7933951.,
      7964820., 8024902., 8055892., 8086882., 8117872., 8178559., 8209670.,
      8240781., 8271892., 8333184., 8364416., 8395648., 8426880., 7552869.,
      7584906., 7616943., 7648980., 7710230., 7742388., 7774546., 7806704.,
      7868559., 7900838., 7933117., 7965396., 8027856., 8060256., 8092656.,
      8125056., 7378165., 7408554., 7438943., 7469332., 7528934., 7559444.,
      7589954., 7620464., 7680671., 7711302., 7741933., 7772564., 7833376.,
      7864128., 7894880., 7925632.};
  const std::array<int, 4> in_shape = {{3, 15, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      300272.,  476080.,  503360.,  321440.,  583352.,  909436.,  938960.,
      590744.,  874412.,  1352296., 1381820., 863324.,  402192.,  610148.,
      622160.,  380632.,  1368752., 2112880., 2140160., 1336160., 1747592.,
      2680876., 2710400., 1681064., 2038652., 3123736., 3153260., 1953644.,
      884352.,  1330868., 1342880., 815752.,  2437232., 3749680., 3776960.,
      2350880., 2911832., 4452316., 4481840., 2771384., 3202892., 4895176.,
      4924700., 3043964., 1366512., 2051588., 2063600., 1250872.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      798721.,  828245.,  1241581., 1271105., 2570161., 2599685.,
      3013021., 3042545., 4341601., 4371125., 4784461., 4813985.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      597380.,  600544.,  947012.,  952160.,  1001220., 1006720., 639268.,
      642880.,  1159466., 1166704., 1807256., 1818872., 1865820., 1877920.,
      1173634., 1181488., 1736966., 1748824., 2685716., 2704592., 2744280.,
      2763640., 1714174., 1726648., 795368.,  804384.,  1205974., 1220296.,
      1229690., 1244320., 751856.,  761264.,  2720900., 2737504., 4199492.,
      4225760., 4253700., 4280320., 2655268., 2672320., 3469466., 3495184.,
      5321096., 5361752., 5379660., 5420800., 3335794., 3362128., 4046966.,
      4077304., 6199556., 6247472., 6258120., 6306520., 3876334., 3907288.,
      1747928., 1768704., 2628934., 2661736., 2652650., 2685760., 1610336.,
      1631504., 4844420., 4874464., 7451972., 7499360., 7506180., 7553920.,
      4671268., 4701760., 5779466., 5823664., 8834936., 8904632., 8893500.,
      8963680., 5497954., 5542768., 6356966., 6405784., 9713396., 9790352.,
      9771960., 9849400., 6038494., 6087928., 2700488., 2733024., 4051894.,
      4103176., 4075610., 4127200., 2468816., 2501744.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1587641., 1597442., 1646205., 1656490., 2466101., 2483162.,
      2524665., 2542210., 5101481., 5140322., 5160045., 5199370.,
      5979941., 6026042., 6038505., 6085090., 8615321., 8683202.,
      8673885., 8742250., 9493781., 9568922., 9552345., 9627970.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1191596.,  1194760.,  1197924.,  1201088.,  1888876.,  1894024.,
      1899172.,  1904320.,  1996940.,  2002440.,  2007940.,  2013440.,
      1274924.,  1278536.,  1282148.,  1285760.,  2311694.,  2318932.,
      2326170.,  2333408.,  3602896.,  3614512.,  3626128.,  3637744.,
      3719540.,  3731640.,  3743740.,  3755840.,  2339414.,  2347268.,
      2355122.,  2362976.,  3462074.,  3473932.,  3485790.,  3497648.,
      5352556.,  5371432.,  5390308.,  5409184.,  5469200.,  5488560.,
      5507920.,  5527280.,  3415874.,  3428348.,  3440822.,  3453296.,
      1581720.,  1590736.,  1599752.,  1608768.,  2397626.,  2411948.,
      2426270.,  2440592.,  2444750.,  2459380.,  2474010.,  2488640.,
      1494304.,  1503712.,  1513120.,  1522528.,  5425196.,  5441800.,
      5458404.,  5475008.,  8372716.,  8398984.,  8425252.,  8451520.,
      8480780.,  8507400.,  8534020.,  8560640.,  5293484.,  5310536.,
      5327588.,  5344640.,  6913214.,  6938932.,  6964650.,  6990368.,
      10601536., 10642192., 10682848., 10723504., 10718180., 10759320.,
      10800460., 10841600., 6645254.,  6671588.,  6697922.,  6724256.,
      8063594.,  8093932.,  8124270.,  8154608.,  12351196., 12399112.,
      12447028., 12494944., 12467840., 12516240., 12564640., 12613040.,
      7721714.,  7752668.,  7783622.,  7814576.,  3475080.,  3495856.,
      3516632.,  3537408.,  5225066.,  5257868.,  5290670.,  5323472.,
      5272190.,  5305300.,  5338410.,  5371520.,  3199504.,  3220672.,
      3241840.,  3263008.,  2183596.,  2193160.,  2202724.,  2212288.,
      3223916.,  3238536.,  3253156.,  3267776.,  3103628.,  3117576.,
      3131524.,  3145472.,  1936172.,  1945160.,  1954148.,  1963136.,
      1866606.,  1875988.,  1885370.,  1894752.,  2836144.,  2850544.,
      2864944.,  2879344.,  2904660.,  2918520.,  2932380.,  2946240.,
      1811894.,  1820868.,  1829842.,  1838816.,  2848538.,  2857932.,
      2867326.,  2876720.,  4419404.,  4434408.,  4449412.,  4464416.,
      4536048.,  4551536.,  4567024.,  4582512.,  2841762.,  2851772.,
      2861782.,  2871792.,  1329272.,  1336720.,  1344168.,  1351616.,
      2020634.,  2032492.,  2044350.,  2056208.,  2067758.,  2079924.,
      2092090.,  2104256.,  1266944.,  1274784.,  1282624.,  1290464.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481.,  3175282.,  3185083.,  3194884.,  3282125.,  3292410.,
      3302695.,  3312980.,  4915141.,  4932202.,  4949263.,  4966324.,
      5031785.,  5049330.,  5066875.,  5084420.,  10164121., 10202962.,
      10241803., 10280644., 10280765., 10320090., 10359415., 10398740.,
      11913781., 11959882., 12005983., 12052084., 12030425., 12077010.,
      12123595., 12170180., 2809865.,  2828082.,  2846299.,  2864516.,
      2833325.,  2851002.,  2868679.,  2886356.,  3981989.,  3995178.,
      4008367.,  4021556.,  4098633.,  4112306.,  4125979.,  4139652.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1185912.,  1201088.,  1880472.,  1904320.,  1988888.,  2013440., 1270136.,
      1285760.,  2309307.,  2333408.,  3599871.,  3637744.,  3716999., 3755840.,
      2338259.,  2362976.,  3464307.,  3497648.,  5356791.,  5409184., 5473919.,
      5527280.,  3419339.,  3453296.,  1586767.,  1608768.,  2406019., 2440592.,
      2453451.,  2488640.,  1500135.,  1522528.,  5432952.,  5475008., 8385432.,
      8451520.,  8493848.,  8560640.,  5302136.,  5344640.,  6929307., 6990368.,
      10627551., 10723504., 10744679., 10841600., 6662579.,  6724256., 8084307.,
      8154608.,  12384471., 12494944., 12501599., 12613040., 7743659., 7814576.,
      3491887.,  3537408.,  5251939.,  5323472.,  5299371.,  5371520., 3217095.,
      3263008.,  2184312.,  2212288.,  3224984.,  3267776.,  3104024., 3145472.,
      1936760.,  1963136.,  1866363.,  1894752.,  2835903.,  2879344., 2903879.,
      2946240.,  1811859.,  1838816.,  2848307.,  2876720.,  4419767., 4464416.,
      4536895.,  4582512.,  2842763.,  2871792.,  1332751.,  1351616., 2026563.,
      2056208.,  2073995.,  2104256.,  1271207.,  1290464.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3160641.,  3194884.,  3277769.,  3312980.,  4917561.,  4966324.,
      5034689.,  5084420.,  10188321., 10280644., 10305449., 10398740.,
      11945241., 12052084., 12062369., 12170180., 2813441.,  2864516.,
      2836361.,  2886356.,  3980537.,  4021556.,  4097665.,  4139652.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2365552.,  2371824.,  2395848.,  2402176.,  3750736.,  3760944.,
      3798344.,  3808640.,  3966864.,  3977776.,  4015880.,  4026880.,
      2533104.,  2540272.,  2564296.,  2571520.,  4604215.,  4618614.,
      4652340.,  4666816.,  7176631.,  7199742.,  7252256.,  7275488.,
      7409919.,  7433998.,  7487480.,  7511680.,  4660887.,  4676518.,
      4710244.,  4725952.,  6904975.,  6928614.,  6971580.,  6995296.,
      10675951., 10713582., 10780616., 10818368., 10909239., 10947838.,
      11015840., 11054560., 6813807.,  6838678.,  6881644.,  6906592.,
      3155551.,  3173534.,  3199504.,  3217536.,  4783471.,  4812038.,
      4852540.,  4881184.,  4877719.,  4906902.,  4948020.,  4977280.,
      2981503.,  3000270.,  3026240.,  3045056.,  2476912.,  2485488.,
      2511816.,  2520448.,  3838544.,  3852080.,  3892808.,  3906432.,
      3964048.,  3977776.,  4018696.,  4032512.,  2516976.,  2525936.,
      2551752.,  2560768.,  3999383.,  4011830.,  4043604.,  4056128.,
      6243991.,  6263742.,  6312896.,  6332768.,  6476767.,  6496974.,
      6546584.,  6566912.,  4086775.,  4099942.,  4131204.,  4144448.,
      6291439.,  6312614.,  6353116.,  6374368.,  9742799.,  9776558.,
      9839720.,  9873600.,  9976087.,  10010814., 10074944., 10109792.,
      6239695.,  6262102.,  6302604.,  6325088.,  2903103.,  2919518.,
      2943920.,  2960384.,  4406479.,  4432582.,  4470620.,  4496800.,
      4500727.,  4527446.,  4566100.,  4592896.,  2754143.,  2771342.,
      2795744.,  2812992.,  2793072.,  2803952.,  2832584.,  2843520.,
      4221264.,  4238128.,  4282184.,  4299136.,  4209040.,  4225584.,
      4269320.,  4285952.,  2658544.,  2669296.,  2696904.,  2707712.,
      3545591.,  3559670.,  3593076.,  3607232.,  5476727.,  5498750.,
      5550176.,  5572320.,  5661887.,  5683854.,  5735224.,  5757312.,
      3559255.,  3573542.,  3605924.,  3620288.,  5677903.,  5696614.,
      5734652.,  5753440.,  8809647.,  8839534.,  8898824.,  8928832.,
      9042935.,  9073790.,  9134048.,  9165024.,  5665583.,  5685526.,
      5723564.,  5743584.,  2650655.,  2665502.,  2688336.,  2703232.,
      4029487.,  4053126.,  4088700.,  4112416.,  4123735.,  4147990.,
      4184180.,  4208512.,  2526783.,  2542414.,  2565248.,  2580928.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166., 6389768., 6535089., 6555538.,  6605390.,
      6625960.,  9801121.,  9835122., 9898526., 9932648., 10034409., 10069378.,
      10133750., 10168840., 5509961., 5531714., 5582870., 5604744.,  5720209.,
      5742418.,  5794030.,  5816360., 8867969., 8898098., 8957630.,  8987880.,
      9101257.,  9132354.,  9192854., 9224072., 5013033., 5037058.,  5090486.,
      5114632.,  5153137.,  5177106., 5230478., 5254568., 7934817.,  7961074.,
      8016734.,  8043112.,  8168105., 8195330., 8251958., 8279304.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1837664.,  1843936.,  1850208.,  1856480.,  1879256.,  1885584.,
      1891912.,  1898240.,  2875584.,  2885792.,  2896000.,  2906208.,
      2941528.,  2951824.,  2962120.,  2972416.,  3073664.,  3084576.,
      3095488.,  3106400.,  3142424.,  3153424.,  3164424.,  3175424.,
      1958880.,  1966048.,  1973216.,  1980384.,  2003288.,  2010512.,
      2017736.,  2024960.,  4033583.,  4047982.,  4062381.,  4076780.,
      4110812.,  4125288.,  4139764.,  4154240.,  6212391.,  6235502.,
      6258613.,  6281724.,  6334336.,  6357568.,  6380800.,  6404032.,
      6444527.,  6468606.,  6492685.,  6516764.,  6570344.,  6594544.,
      6618744.,  6642944.,  4055583.,  4071214.,  4086845.,  4102476.,
      4136300.,  4152008.,  4167716.,  4183424.,  6352583.,  6376222.,
      6399861.,  6423500.,  6466772.,  6490488.,  6514204.,  6537920.,
      9694431.,  9732062.,  9769693.,  9807324.,  9874456.,  9912208.,
      9949960.,  9987712.,  9926567.,  9965166.,  10003765., 10042364.,
      10110464., 10149184., 10187904., 10226624., 6201783.,  6226654.,
      6251525.,  6276396.,  6319460.,  6344408.,  6369356.,  6394304.,
      4212863.,  4230846.,  4248829.,  4266812.,  4296112.,  4314144.,
      4332176.,  4350208.,  6491463.,  6520030.,  6548597.,  6577164.,
      6622868.,  6651512.,  6680156.,  6708800.,  6626095.,  6655278.,
      6684461.,  6713644.,  6759964.,  6789224.,  6818484.,  6847744.,
      4249007.,  4267774.,  4286541.,  4305308.,  4334848.,  4353664.,
      4372480.,  4391296.,  2664288.,  2672864.,  2681440.,  2690016.,
      2715096.,  2723728.,  2732360.,  2740992.,  3981760.,  3995296.,
      4008832.,  4022368.,  4061016.,  4074640.,  4088264.,  4101888.,
      3999104.,  4012832.,  4026560.,  4040288.,  4079128.,  4092944.,
      4106760.,  4120576.,  2498272.,  2507232.,  2516192.,  2525152.,
      2549848.,  2558864.,  2567880.,  2576896.,  3432079.,  3444526.,
      3456973.,  3469420.,  3501500.,  3514024.,  3526548.,  3539072.,
      5284359.,  5304110.,  5323861.,  5343612.,  5392864.,  5412736.,
      5432608.,  5452480.,  5515983.,  5536190.,  5556397.,  5576604.,
      5626312.,  5646640.,  5666968.,  5687296.,  3483263.,  3496430.,
      3509597.,  3522764.,  3554124.,  3567368.,  3580612.,  3593856.,
      5734183.,  5755358.,  5776533.,  5797708.,  5838516.,  5859768.,
      5881020.,  5902272.,  8765887.,  8799646.,  8833405.,  8867164.,
      8930424.,  8964304.,  8998184.,  9032064.,  8998023.,  9032750.,
      9067477.,  9102204.,  9166432.,  9201280.,  9236128.,  9270976.,
      5629463.,  5651870.,  5674277.,  5696684.,  5737284.,  5759768.,
      5782252.,  5804736.,  3856991.,  3873406.,  3889821.,  3906236.,
      3933968.,  3950432.,  3966896.,  3983360.,  5952935.,  5979038.,
      6005141.,  6031244.,  6074484.,  6100664.,  6126844.,  6153024.,
      6087567.,  6114286.,  6141005.,  6167724.,  6211580.,  6238376.,
      6265172.,  6291968.,  3910543.,  3927742.,  3944941.,  3962140.,
      3990112.,  4007360.,  4024608.,  4041856.,  3900512.,  3911392.,
      3922272.,  3933152.,  3960536.,  3971472.,  3982408.,  3993344.,
      5677760.,  5694624.,  5711488.,  5728352.,  5770328.,  5787280.,
      5804232.,  5821184.,  5420160.,  5436704.,  5453248.,  5469792.,
      5511448.,  5528080.,  5544712.,  5561344.,  3353056.,  3363808.,
      3374560.,  3385312.,  3411800.,  3422608.,  3433416.,  3444224.,
      3129071.,  3143150.,  3157229.,  3171308.,  3205020.,  3219176.,
      3233332.,  3247488.,  4681447.,  4703470.,  4725493.,  4747516.,
      4799040.,  4821184.,  4843328.,  4865472.,  4818351.,  4840318.,
      4862285.,  4884252.,  4935720.,  4957808.,  4979896.,  5001984.,
      3000543.,  3014830.,  3029117.,  3043404.,  3075884.,  3090248.,
      3104612.,  3118976.,  5115783.,  5134494.,  5153205.,  5171916.,
      5210260.,  5229048.,  5247836.,  5266624.,  7837343.,  7867230.,
      7897117.,  7927004.,  7986392.,  8016400.,  8046408.,  8076416.,
      8069479.,  8100334.,  8131189.,  8162044.,  8222400.,  8253376.,
      8284352.,  8315328.,  5057143.,  5077086.,  5097029.,  5116972.,
      5155108.,  5175128.,  5195148.,  5215168.,  3501119.,  3515966.,
      3530813.,  3545660.,  3571824.,  3586720.,  3601616.,  3616512.,
      5414407.,  5438046.,  5461685.,  5485324.,  5526100.,  5549816.,
      5573532.,  5597248.,  5549039.,  5573294.,  5597549.,  5621804.,
      5663196.,  5687528.,  5711860.,  5736192.,  3572079.,  3587710.,
      3603341.,  3618972.,  3645376.,  3661056.,  3676736.,  3692416.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881., 5361362., 5380843., 5400324., 5449306., 5468908., 5488510.,
      5508112., 5574017., 5594466., 5614915., 5635364., 5685314., 5705884.,
      5726454., 5747024., 8823921., 8857922., 8891923., 8925924., 8989426.,
      9023548., 9057670., 9091792., 9056057., 9091026., 9125995., 9160964.,
      9225434., 9260524., 9295614., 9330704., 4689817., 4711570., 4733323.,
      4755076., 4806330., 4828204., 4850078., 4871952., 4876385., 4898594.,
      4920803., 4943012., 4994722., 5017052., 5039382., 5061712., 7895377.,
      7925506., 7955635., 7985764., 8045394., 8075644., 8105894., 8136144.,
      8127513., 8158610., 8189707., 8220804., 8281402., 8312620., 8343838.,
      8375056., 4627577., 4651602., 4675627., 4699652., 4753178., 4777324.,
      4801470., 4825616., 4674369., 4698338., 4722307., 4746276., 4799746.,
      4823836., 4847926., 4872016., 6966833., 6993090., 7019347., 7045604.,
      7101362., 7127740., 7154118., 7180496., 7198969., 7226194., 7253419.,
      7280644., 7337370., 7364716., 7392062., 7419408.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4713464., 4743648., 4773944., 4804352., 7474456., 7521888., 7569496.,
      7617280., 7906712., 7955552., 8004568., 8053760., 5049464., 5080544.,
      5111736., 5143040., 4619657., 4656876., 4694249., 4731776., 6748549.,
      6805500., 6862693., 6920128., 6537237., 6594076., 6651157., 6708480.,
      3755801., 3790668., 3825689., 3860864., 5336121., 5377484., 5419001.,
      5460672., 8092661., 8156124., 8219829., 8283776., 8241797., 8305148.,
      8368741., 8432576., 5036745., 5075756., 5114921., 5154240., 2264045.,
      2282812., 2301677., 2320640., 3523289., 3552780., 3582425., 3612224.,
      3711785., 3742508., 3773385., 3804416., 2318141., 2337692., 2357341.,
      2377088., 4260344., 4291040., 4321848., 4352768., 6697752., 6745696.,
      6793816., 6842112., 7039384., 7088224., 7137240., 7186432., 4497528.,
      4528608., 4559800., 4591104., 4766793., 4803180., 4839721., 4876416.,
      7113029., 7168892., 7224997., 7281344., 6802901., 6858140., 6913621.,
      6969344., 3938777., 3972812., 4007001., 4041344., 4843769., 4883788.,
      4923961., 4964288., 7375285., 7437148., 7499253., 7561600., 7426117.,
      7487868., 7549861., 7612096., 4498825., 4537004., 4575337., 4613824.,
      1863085., 1882300., 1901613., 1921024., 2847641., 2876812., 2906137.,
      2935616., 2980841., 3009196., 3037705., 3066368., 1863933., 1880860.,
      1897885., 1915008., 4012024., 4043232., 4074552., 4105984., 6215960.,
      6264416., 6313048., 6361856., 6419864., 6468704., 6517720., 6566912.,
      4103288., 4134368., 4165560., 4196864., 5222665., 5261804., 5301097.,
      5340544., 7937797., 7998204., 8058853., 8119744., 7481749., 7541020.,
      7600533., 7660288., 4373145., 4409932., 4446873., 4483968., 4509113.,
      4547788., 4586617., 4625600., 6952821., 7013084., 7073589., 7134336.,
      6905349., 6965500., 7025893., 7086528., 4165705., 4203052., 4240553.,
      4278208., 1619821., 1639484., 1659245., 1679104., 2456153., 2486540.,
      2517081., 2547776., 2491049., 2520620., 2550345., 2580224., 1503421.,
      1521308., 1539293., 1557376.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828., 6841281.,
      6896976., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 7807657., 7867524., 7927633., 7987984., 7384889.,
      7444132., 7503617., 7563344., 6937881., 6998116., 7058593., 7119312.,
      6898601., 6958724., 7019089., 7079696., 9173097., 9237508., 9302161.,
      9367056., 8581881., 8645156., 8708673., 8772432., 6785753., 6844388.,
      6903265., 6962384., 6648169., 6706692., 6765457., 6824464.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3659048., 3671536., 3700416., 3712960., 3742008., 3754608., 3783824.,
      3796480., 5726408., 5746736., 5792000., 5812416., 5857944., 5878448.,
      5924240., 5944832., 6122568., 6144304., 6190976., 6212800., 6259736.,
      6281648., 6328848., 6350848., 3902248., 3916528., 3946432., 3960768.,
      3990840., 4005232., 4035472., 4049920., 4424417., 4442386., 4479834.,
      4497880., 4535559., 4553682., 4591592., 4609792., 6700277., 6727946.,
      6784874., 6812664., 6869955., 6897866., 6955520., 6983552., 6859397.,
      6886954., 6943770., 6971448., 7028627., 7056426., 7113968., 7141888.,
      4351585., 4368434., 4403322., 4420248., 4455367., 4472370., 4507720.,
      4524800., 5500945., 5523058., 5564650., 5586840., 5628663., 5650930.,
      5692984., 5715328., 7882853., 7917034., 7980474., 8014776., 8078579.,
      8113002., 8177168., 8211712., 7714293., 7748362., 7811690., 7845880.,
      7909571., 7943882., 8007936., 8042368., 4443537., 4464530., 4503562.,
      4524632., 4563895., 4585042., 4624536., 4645760., 2720653., 2731482.,
      2753530., 2764408., 2786603., 2797530., 2819872., 2830848., 4349649.,
      4367282., 4401898., 4419608., 4454455., 4472242., 4507320., 4525184.,
      4618913., 4637778., 4673626., 4692568., 4728647., 4747666., 4783976.,
      4803072., 3072013., 3084410., 3107482., 3119928., 3143147., 3155642.,
      3179008., 3191552., 3964712., 3977712., 4007104., 4020160., 4049720.,
      4062832., 4092560., 4105728., 6040264., 6061104., 6106880., 6127808.,
      6173848., 6194864., 6241168., 6262272., 6255688., 6277424., 6324096.,
      6345920., 6392856., 6414768., 6461968., 6483968., 3945256., 3959536.,
      3989440., 4003776., 4033848., 4048240., 4078480., 4092928., 4096929.,
      4114066., 4150682., 4167896., 4204743., 4222034., 4259112., 4276480.,
      6152373., 6178954., 6234794., 6261496., 6317699., 6344522., 6401088.,
      6428032., 6114373., 6140330., 6195546., 6221624., 6277203., 6303402.,
      6359344., 6385664., 3768097., 3784114., 3818170., 3834264., 3868551.,
      3884722., 3919240., 3935488., 5730001., 5750770., 5791018., 5811864.,
      5852343., 5873266., 5913976., 5934976., 8317477., 8350058., 8411898.,
      8444600., 8506803., 8539626., 8602192., 8635136., 7952309., 7984778.,
      8046506., 8079096., 8141187., 8173898., 8236352., 8269184., 4515409.,
      4535570., 4573770., 4594008., 4632439., 4652754., 4691416., 4711808.,
      2213197., 2224474., 2246970., 2258296., 2280939., 2292314., 2315104.,
      2326528., 3424657., 3441970., 3476266., 3493656., 3528183., 3545650.,
      3580408., 3597952., 3585377., 3601874., 3635354., 3651928., 3685639.,
      3702290., 3736232., 3752960., 2395597., 2405370., 2425818., 2435640.,
      2456235., 2466106., 2486848., 2496768., 4679976., 4693488., 4723392.,
      4736960., 4767032., 4780656., 4810896., 4824576., 6943944., 6965296.,
      7011584., 7033024., 7079576., 7101104., 7147920., 7169536., 6884424.,
      6906160., 6952832., 6974656., 7021592., 7043504., 7090704., 7112704.,
      4303656., 4317936., 4347840., 4362176., 4392248., 4406640., 4436880.,
      4451328., 4383329., 4403218., 4442586., 4462552., 4502151., 4522194.,
      4562024., 4582144., 6519413., 6550538., 6610922., 6642168., 6702915.,
      6734282., 6795392., 6826880., 6190085., 6220074., 6279322., 6309432.,
      6369043., 6399274., 6459248., 6489600., 3683809., 3702578., 3739386.,
      3758232., 3795271., 3814194., 3851464., 3870464., 5750161., 5769586.,
      5808490., 5827992., 5867127., 5886706., 5926072., 5945728., 9079781.,
      9110762., 9171002., 9202104., 9262707., 9293930., 9354896., 9386240.,
      8780149., 8811018., 8871146., 8902136., 8962627., 8993738., 9054592.,
      9085824., 4996881., 5016210., 5053578., 5072984., 5110583., 5130066.,
      5167896., 5187456., 2021133., 2032858., 2055802., 2067576., 2090667.,
      2102490., 2125728., 2137600., 3066449., 3084978., 3120490., 3139096.,
      3174839., 3193522., 3229496., 3248256., 3030561., 3048274., 3082970.,
      3100760., 3135687., 3153554., 3188712., 3206656., 1902989., 1913722.,
      1935130., 1945912., 1967467., 1978298., 2000000., 2010880.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 6405081., 6435666., 6495510.,
      6526216., 6586423., 6617250., 6677820., 6708768., 6141801., 6171762.,
      6230982., 6261064., 6320647., 6350850., 6410796., 6441120., 9195337.,
      9226290., 9286502., 9317576., 9378151., 9409346., 9470284., 9501600.,
      8649945., 8680786., 8740886., 8771848., 8832311., 8863394., 8924220.,
      8955424., 7853465., 7888594., 7952982., 7988232., 8052983., 8088354.,
      8153468., 8188960., 7253801., 7287794., 7351046., 7385160., 7448775.,
      7483010., 7546988., 7581344., 7614729., 7644082., 7702694., 7732168.,
      7791143., 7820738., 7880076., 7909792., 7921305., 7950546., 8009046.,
      8038408., 8097271., 8126754., 8185980., 8215584.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3285384., 3297872., 3310360., 3322848., 3349632., 3362176., 3374720.,
      3387264., 3414328., 3426928., 3439528., 3452128., 3479472., 3492128.,
      3504784., 3517440., 5079592., 5099920., 5120248., 5140576., 5182016.,
      5202432., 5222848., 5243264., 5285144., 5305648., 5326152., 5346656.,
      5388976., 5409568., 5430160., 5450752., 5411752., 5433488., 5455224.,
      5476960., 5519808., 5541632., 5563456., 5585280., 5628568., 5650480.,
      5672392., 5694304., 5738032., 5760032., 5782032., 5804032., 3543176.,
      3557456., 3571736., 3586016., 3613568., 3627904., 3642240., 3656576.,
      3684408., 3698800., 3713192., 3727584., 3755696., 3770144., 3784592.,
      3799040., 4738449., 4756418., 4774387., 4792356., 4830262., 4848308.,
      4866354., 4884400., 4922691., 4940814., 4958937., 4977060., 5015736.,
      5033936., 5052136., 5070336., 6579157., 6606826., 6634495., 6662164.,
      6719046., 6746836., 6774626., 6802416., 6859903., 6887814., 6915725.,
      6943636., 7001728., 7029760., 7057792., 7085824., 6430565., 6458122.,
      6485679., 6513236., 6570006., 6597684., 6625362., 6653040., 6710415.,
      6738214., 6766013., 6793812., 6851792., 6879712., 6907632., 6935552.,
      3808497., 3825346., 3842195., 3859044., 3893974., 3910900., 3927826.,
      3944752., 3980067., 3997070., 4014073., 4031076., 4066776., 4083856.,
      4100936., 4118016., 5486529., 5508642., 5530755., 5552868., 5594918.,
      5617108., 5639298., 5661488., 5703923., 5726190., 5748457., 5770724.,
      5813544., 5835888., 5858232., 5880576., 7962949., 7997130., 8031311.,
      8065492., 8128886., 8163188., 8197490., 8231792., 8295791., 8330214.,
      8364637., 8399060., 8463664., 8498208., 8532752., 8567296., 8207573.,
      8241642., 8275711., 8309780., 8373062., 8407252., 8441442., 8475632.,
      8539519., 8573830., 8608141., 8642452., 8706944., 8741376., 8775808.,
      8810240., 5192481., 5213474., 5234467., 5255460., 5294534., 5315604.,
      5336674., 5357744., 5397203., 5418350., 5439497., 5460644., 5500488.,
      5521712., 5542936., 5564160., 2680013., 2690842., 2701671., 2712500.,
      2735478., 2746356., 2757234., 2768112., 2791335., 2802262., 2813189.,
      2824116., 2847584., 2858560., 2869536., 2880512., 4077761., 4095394.,
      4113027., 4130660., 4165798., 4183508., 4201218., 4218928., 4254451.,
      4272238., 4290025., 4307812., 4343720., 4361584., 4379448., 4397312.,
      4352913., 4371778., 4390643., 4409508., 4445878., 4464820., 4483762.,
      4502704., 4539459., 4558478., 4577497., 4596516., 4633656., 4652752.,
      4671848., 4690944., 2766253., 2778650., 2791047., 2803444., 2826390.,
      2838836., 2851282., 2863728., 2886919., 2899414., 2911909., 2924404.,
      2947840., 2960384., 2972928., 2985472., 2978696., 2991696., 3004696.,
      3017696., 3044992., 3058048., 3071104., 3084160., 3111736., 3124848.,
      3137960., 3151072., 3178928., 3192096., 3205264., 3218432., 4396072.,
      4416912., 4437752., 4458592., 4500544., 4521472., 4542400., 4563328.,
      4605720., 4626736., 4647752., 4668768., 4711600., 4732704., 4753808.,
      4774912., 4629416., 4651152., 4672888., 4694624., 4737472., 4759296.,
      4781120., 4802944., 4846232., 4868144., 4890056., 4911968., 4955696.,
      4977696., 4999696., 5021696., 2941064., 2955344., 2969624., 2983904.,
      3011456., 3025792., 3040128., 3054464., 3082296., 3096688., 3111080.,
      3125472., 3153584., 3168032., 3182480., 3196928., 4510289., 4527426.,
      4544563., 4561700., 4598774., 4615988., 4633202., 4650416., 4687875.,
      4705166., 4722457., 4739748., 4777592., 4794960., 4812328., 4829696.,
      7090069., 7116650., 7143231., 7169812., 7225606., 7252308., 7279010.,
      7305712., 7362111., 7388934., 7415757., 7442580., 7499584., 7526528.,
      7553472., 7580416., 6809893., 6835850., 6861807., 6887764., 6942934.,
      6969012., 6995090., 7021168., 7076943., 7103142., 7129341., 7155540.,
      7211920., 7238240., 7264560., 7290880., 3789233., 3805250., 3821267.,
      3837284., 3871382., 3887476., 3903570., 3919664., 3954147., 3970318.,
      3986489., 4002660., 4037528., 4053776., 4070024., 4086272., 5323393.,
      5344162., 5364931., 5385700., 5426406., 5447252., 5468098., 5488944.,
      5530035., 5550958., 5571881., 5592804., 5634280., 5655280., 5676280.,
      5697280., 7555845., 7588426., 7621007., 7653588., 7715382., 7748084.,
      7780786., 7813488., 7875887., 7908710., 7941533., 7974356., 8037360.,
      8070304., 8103248., 8136192., 7407253., 7439722., 7472191., 7504660.,
      7566342., 7598932., 7631522., 7664112., 7726399., 7759110., 7791821.,
      7824532., 7887424., 7920256., 7953088., 7985920., 4386785., 4406946.,
      4427107., 4447268., 4485510., 4505748., 4525986., 4546224., 4584851.,
      4605166., 4625481., 4645796., 4684808., 4705200., 4725592., 4745984.,
      2320013., 2331290., 2342567., 2353844., 2377270., 2388596., 2399922.,
      2411248., 2434919., 2446294., 2457669., 2469044., 2492960., 2504384.,
      2515808., 2527232., 3276673., 3293986., 3311299., 3328612., 3363430.,
      3380820., 3398210., 3415600., 3450803., 3468270., 3485737., 3503204.,
      3538792., 3556336., 3573880., 3591424., 3336785., 3353282., 3369779.,
      3386276., 3420278., 3436852., 3453426., 3470000., 3504387., 3521038.,
      3537689., 3554340., 3589112., 3605840., 3622568., 3639296., 2104173.,
      2113946., 2123719., 2133492., 2153814., 2163636., 2173458., 2183280.,
      2203847., 2213718., 2223589., 2233460., 2254272., 2264192., 2274112.,
      2284032., 3491208., 3504720., 3518232., 3531744., 3559552., 3573120.,
      3586688., 3600256., 3628344., 3641968., 3655592., 3669216., 3697584.,
      3711264., 3724944., 3738624., 4892200., 4913552., 4934904., 4956256.,
      4998720., 5020160., 5041600., 5063040., 5105944., 5127472., 5149000.,
      5170528., 5213872., 5235488., 5257104., 5278720., 4838312., 4860048.,
      4881784., 4903520., 4946368., 4968192., 4990016., 5011840., 5055128.,
      5077040., 5098952., 5120864., 5164592., 5186592., 5208592., 5230592.,
      2969736., 2984016., 2998296., 3012576., 3040128., 3054464., 3068800.,
      3083136., 3110968., 3125360., 3139752., 3154144., 3182256., 3196704.,
      3211152., 3225600., 4457745., 4477634., 4497523., 4517412., 4557238.,
      4577204., 4597170., 4617136., 4657347., 4677390., 4697433., 4717476.,
      4758072., 4778192., 4798312., 4818432., 6541653., 6572778., 6603903.,
      6635028., 6695366., 6726612., 6757858., 6789104., 6850047., 6881414.,
      6912781., 6944148., 7005696., 7037184., 7068672., 7100160., 6465765.,
      6495754., 6525743., 6555732., 6614934., 6645044., 6675154., 6705264.,
      6765071., 6795302., 6825533., 6855764., 6916176., 6946528., 6976880.,
      7007232., 4240497., 4259266., 4278035., 4296804., 4333654., 4352500.,
      4371346., 4390192., 4427427., 4446350., 4465273., 4484196., 4521816.,
      4540816., 4559816., 4578816., 5266753., 5286178., 5305603., 5325028.,
      5364390., 5383892., 5403394., 5422896., 5462643., 5482222., 5501801.,
      5521380., 5561512., 5581168., 5600824., 5620480., 8066245., 8097226.,
      8128207., 8159188., 8219382., 8250484., 8281586., 8312688., 8373487.,
      8404710., 8435933., 8467156., 8528560., 8559904., 8591248., 8622592.,
      7786581., 7817450., 7848319., 7879188., 7939270., 7970260., 8001250.,
      8032240., 8092927., 8124038., 8155149., 8186260., 8247552., 8278784.,
      8310016., 8341248., 4400289., 4419618., 4438947., 4458276., 4495686.,
      4515092., 4534498., 4553904., 4591699., 4611182., 4630665., 4650148.,
      4688328., 4707888., 4727448., 4747008., 2590797., 2602522., 2614247.,
      2625972., 2649846., 2661620., 2673394., 2685168., 2709287., 2721110.,
      2732933., 2744756., 2769120., 2780992., 2792864., 2804736., 3607617.,
      3626146., 3644675., 3663204., 3699238., 3717844., 3736450., 3755056.,
      3791475., 3810158., 3828841., 3847524., 3884328., 3903088., 3921848.,
      3940608., 3274513., 3292226., 3309939., 3327652., 3362870., 3380660.,
      3398450., 3416240., 3451843., 3469710., 3487577., 3505444., 3541432.,
      3559376., 3577320., 3595264., 1806125., 1816858., 1827591., 1838324.,
      1859606., 1870388., 1881170., 1891952., 1913479., 1924310., 1935141.,
      1945972., 1967744., 1978624., 1989504., 2000384.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 6458937., 6489522., 6520107., 6550692., 6610490., 6641196.,
      6671902., 6702608., 6763011., 6793838., 6824665., 6855492., 6916500.,
      6947448., 6978396., 7009344., 6514633., 6544594., 6574555., 6604516.,
      6663690., 6693772., 6723854., 6753936., 6813715., 6843918., 6874121.,
      6904324., 6964708., 6995032., 7025356., 7055680., 8180649., 8211602.,
      8242555., 8273508., 8333674., 8364748., 8395822., 8426896., 8487667.,
      8518862., 8550057., 8581252., 8642628., 8673944., 8705260., 8736576.,
      7671609., 7702450., 7733291., 7764132., 7824186., 7855148., 7886110.,
      7917072., 7977731., 8008814., 8039897., 8070980., 8132244., 8163448.,
      8194652., 8225856., 8073209., 8108338., 8143467., 8178596., 8242938.,
      8278188., 8313438., 8348688., 8413635., 8449006., 8484377., 8519748.,
      8585300., 8620792., 8656284., 8691776., 7456649., 7490642., 7524635.,
      7558628., 7621834., 7655948., 7690062., 7724176., 7787987., 7822222.,
      7856457., 7890692., 7955108., 7989464., 8023820., 8058176., 6888809.,
      6918162., 6947515., 6976868., 7035434., 7064908., 7094382., 7123856.,
      7183027., 7212622., 7242217., 7271812., 7331588., 7361304., 7391020.,
      7420736., 7035129., 7064370., 7093611., 7122852., 7181306., 7210668.,
      7240030., 7269392., 7328451., 7357934., 7387417., 7416900., 7476564.,
      7506168., 7535772., 7565376.};
  const std::array<int, 4> in_shape = {{3, 16, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      365360.,  511852.,  539132.,  343700.,  708092.,  974413.,  1003937.,
      631015.,  1060092., 1446797., 1476321., 921767.,  485380.,  652575.,
      664587.,  406357.,  1659696., 2257772., 2285052., 1426068., 2116092.,
      2863949., 2893473., 1794023., 2468092., 3336333., 3365857., 2084775.,
      1065988., 1421343., 1433355., 870485.,  2954032., 4003692., 4030972.,
      2508436., 3524092., 4753485., 4783009., 2957031., 3876092., 5225869.,
      5255393., 3247783., 1646596., 2190111., 2202123., 1334613.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      848936.,  878460.,  1321320., 1350844., 2738472., 2767996.,
      3210856., 3240380., 4628008., 4657532., 5100392., 5129916.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      726848.,   730720.,   1018160., 1023704., 1072368., 1078264.,  683536.,
      687400.,   1407340.,  1416184., 1936363., 1948826., 1994927.,  2007874.,
      1253637.,  1262030.,  2105708., 2120184., 2873387., 2893594.,  2931951.,
      2952642.,  1830213.,  1843534., 959756.,  970760.,  1289827.,  1305150.,
      1313543.,  1329174.,  802669.,  812714.,  3299136., 3319392.,  4487472.,
      4515544.,  4541680.,  4570104., 2833936., 2852136., 4200812.,  4232184.,
      5684459.,  5727898.,  5743023., 5786946., 3559941., 3588046.,  4899180.,
      4936184.,  6621483.,  6672666., 6680047., 6731714., 4136517.,  4169550.,
      2106636.,  2131976.,  2807651., 2842686., 2831367., 2866710.,  1718381.,
      1740970.,  5871424.,  5908064., 7956784., 8007384., 8010992.,  8061944.,
      4984336.,  5016872.,  6994284., 7048184., 9432555., 9506970.,  9491119.,
      9566018.,  5866245.,  5914062., 7692652., 7752184., 10369579., 10451738.,
      10428143., 10510786., 6442821., 6495566., 3253516., 3293192.,  4325475.,
      4380222.,  4349191.,  4404246., 2634093., 2669226.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1687466., 1697872., 1746030.,  1756920.,  2624490.,  2642640.,
      2683054., 2701688., 5435562.,  5476944.,  5494126.,  5535992.,
      6372586., 6421712., 6431150.,  6480760.,  9183658.,  9256016.,
      9242222., 9315064., 10120682., 10200784., 10179246., 10259832.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1449824.,  1453696.,  1457568.,  1461440.,  2030776.,  2036320.,
      2041864.,  2047408.,  2138840.,  2144736.,  2150632.,  2156528.,
      1363208.,  1367072.,  1370936.,  1374800.,  2805836.,  2814680.,
      2823524.,  2832368.,  3860263.,  3872726.,  3885189.,  3897652.,
      3976907.,  3989854.,  4002801.,  4015748.,  2498881.,  2507274.,
      2515667.,  2524060.,  4196940.,  4211416.,  4225892.,  4240368.,
      5726567.,  5746774.,  5766981.,  5787188.,  5843211.,  5863902.,
      5884593.,  5905284.,  3647105.,  3660426.,  3673747.,  3687068.,
      1908508.,  1919512.,  1930516.,  1941520.,  2564331.,  2579654.,
      2594977.,  2610300.,  2611455.,  2627086.,  2642717.,  2658348.,
      1595293.,  1605338.,  1615383.,  1625428.,  6578016.,  6598272.,
      6618528.,  6638784.,  8946872.,  8974944.,  9003016.,  9031088.,
      9054936.,  9083360.,  9111784.,  9140208.,  5649672.,  5667872.,
      5686072.,  5704272.,  8370252.,  8401624.,  8432996.,  8464368.,
      11325479., 11368918., 11412357., 11455796., 11442123., 11486046.,
      11529969., 11573892., 7091777.,  7119882.,  7147987.,  7176092.,
      9761356.,  9798360.,  9835364.,  9872368.,  13191783., 13242966.,
      13294149., 13345332., 13308427., 13360094., 13411761., 13463428.,
      8240001.,  8273034.,  8306067.,  8339100.,  4187932.,  4213272.,
      4238612.,  4263952.,  5580267.,  5615302.,  5650337.,  5685372.,
      5627391.,  5662734.,  5698077.,  5733420.,  3414173.,  3436762.,
      3459351.,  3481940.,  1449824.,  1453696.,  1457568.,  1461440.,
      2030776.,  2036320.,  2041864.,  2047408.,  2138840.,  2144736.,
      2150632.,  2156528.,  1363208.,  1367072.,  1370936.,  1374800.,
      2805836.,  2814680.,  2823524.,  2832368.,  3860263.,  3872726.,
      3885189.,  3897652.,  3976907.,  3989854.,  4002801.,  4015748.,
      2498881.,  2507274.,  2515667.,  2524060.,  4196940.,  4211416.,
      4225892.,  4240368.,  5726567.,  5746774.,  5766981.,  5787188.,
      5843211.,  5863902.,  5884593.,  5905284.,  3647105.,  3660426.,
      3673747.,  3687068.,  1908508.,  1919512.,  1930516.,  1941520.,
      2564331.,  2579654.,  2594977.,  2610300.,  2611455.,  2627086.,
      2642717.,  2658348.,  1595293.,  1605338.,  1615383.,  1625428.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526.,  3374932.,  3385338.,  3395744.,  3481170.,  3492060.,
      3502950.,  3513840.,  5230830.,  5248980.,  5267130.,  5285280.,
      5347474.,  5366108.,  5384742.,  5403376.,  10829742., 10871124.,
      10912506., 10953888., 10946386., 10988252., 11030118., 11071984.,
      12696046., 12745172., 12794298., 12843424., 12812690., 12862300.,
      12911910., 12961520., 3364526.,  3374932.,  3385338.,  3395744.,
      3481170.,  3492060.,  3502950.,  3513840.,  5230830.,  5248980.,
      5267130.,  5285280.,  5347474.,  5366108.,  5384742.,  5403376.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1443648.,  1461440.,  2022768.,  2047408.,  2131184.,  2156528., 1358672.,
      1374800.,  2803768.,  2832368.,  3858085.,  3897652.,  3975213., 4015748.,
      2498265.,  2524060.,  4200504.,  4240368.,  5732133.,  5787188., 5849261.,
      5905284.,  3651417.,  3687068.,  1915032.,  1941520.,  2573725., 2610300.,
      2621157.,  2658348.,  1601761.,  1625428.,  6588224.,  6638784., 8961392.,
      9031088.,  9069808.,  9140208.,  5659472.,  5704272.,  8390712., 8464368.,
      11354277., 11455796., 11471405., 11573892., 7110873.,  7176092., 9787448.,
      9872368.,  13228325., 13345332., 13345453., 13463428., 8264025., 8339100.,
      4208792.,  4263952.,  5609373.,  5685372.,  5656805.,  5733420., 3433185.,
      3481940.,  1443648.,  1461440.,  2022768.,  2047408.,  2131184., 2156528.,
      1358672.,  1374800.,  2803768.,  2832368.,  3858085.,  3897652., 3975213.,
      4015748.,  2498265.,  2524060.,  4200504.,  4240368.,  5732133., 5787188.,
      5849261.,  5905284.,  3651417.,  3687068.,  1915032.,  1941520., 2573725.,
      2610300.,  2621157.,  2658348.,  1601761.,  1625428.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3360291.,  3395744.,  3477419.,  3513840.,  5234339.,  5285280.,
      5351467.,  5403376.,  10856483., 10953888., 10973611., 11071984.,
      12730531., 12843424., 12847659., 12961520., 3360291.,  3395744.,
      3477419.,  3513840.,  5234339.,  5285280.,  5351467.,  5403376.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2879616.,  2887296.,  2915136.,  2922880.,  4034536.,  4045536.,
      4083728.,  4094816.,  4250664.,  4262368.,  4301264.,  4313056.,
      2709672.,  2717344.,  2741872.,  2749600.,  5589936.,  5607536.,
      5647048.,  5664736.,  7691365.,  7716170.,  7770378.,  7795304.,
      7924653.,  7950426.,  8005602.,  8031496.,  4979821.,  4996530.,
      5031334.,  5048120.,  8372144.,  8401008.,  8451784.,  8480736.,
      11423973., 11464266., 11533962., 11574376., 11657261., 11698522.,
      11769186., 11810568., 7276269.,  7302834.,  7347494.,  7374136.,
      3808112.,  3830064.,  3861032.,  3883040.,  5116881.,  5147450.,
      5189954.,  5220600.,  5211129.,  5242314.,  5285434.,  5316696.,
      3183481.,  3203522.,  3230766.,  3250856.,  2879616.,  2887296.,
      2915136.,  2922880.,  4034536.,  4045536.,  4083728.,  4094816.,
      4250664.,  4262368.,  4301264.,  4313056.,  2709672.,  2717344.,
      2741872.,  2749600.,  5589936.,  5607536.,  5647048.,  5664736.,
      7691365.,  7716170.,  7770378.,  7795304.,  7924653.,  7950426.,
      8005602.,  8031496.,  4979821.,  4996530.,  5031334.,  5048120.,
      8372144.,  8401008.,  8451784.,  8480736.,  11423973., 11464266.,
      11533962., 11574376., 11657261., 11698522., 11769186., 11810568.,
      7276269.,  7302834.,  7347494.,  7374136.,  3808112.,  3830064.,
      3861032.,  3883040.,  5116881.,  5147450.,  5189954.,  5220600.,
      5211129.,  5242314.,  5285434.,  5316696.,  3183481.,  3203522.,
      3230766.,  3250856.,  2879616.,  2887296.,  2915136.,  2922880.,
      4034536.,  4045536.,  4083728.,  4094816.,  4250664.,  4262368.,
      4301264.,  4313056.,  2709672.,  2717344.,  2741872.,  2749600.,
      5589936.,  5607536.,  5647048.,  5664736.,  7691365.,  7716170.,
      7770378.,  7795304.,  7924653.,  7950426.,  8005602.,  8031496.,
      4979821.,  4996530.,  5031334.,  5048120.,  8372144.,  8401008.,
      8451784.,  8480736.,  11423973., 11464266., 11533962., 11574376.,
      11657261., 11698522., 11769186., 11810568., 7276269.,  7302834.,
      7347494.,  7374136.,  3808112.,  3830064.,  3861032.,  3883040.,
      5116881.,  5147450.,  5189954.,  5220600.,  5211129.,  5242314.,
      5285434.,  5316696.,  3183481.,  3203522.,  3230766.,  3250856.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752., 6699891.,  6720582.,
      6770676.,  6791488.,  6933179.,  6954838.,  7005900.,  7027680.,
      10432499., 10468678., 10534260., 10570560., 10665787., 10702934.,
      10769484., 10806752., 6699891.,  6720582.,  6770676.,  6791488.,
      6933179.,  6954838.,  7005900.,  7027680.,  10432499., 10468678.,
      10534260., 10570560., 10665787., 10702934., 10769484., 10806752.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2231040.,  2238720.,  2246400.,  2254080.,  2280512.,  2288256.,
      2296000.,  2303744.,  3098328.,  3109328.,  3120328.,  3131328.,
      3167440.,  3178528.,  3189616.,  3200704.,  3296408.,  3308112.,
      3319816.,  3331520.,  3368336.,  3380128.,  3391920.,  3403712.,
      2096472.,  2104144.,  2111816.,  2119488.,  2142896.,  2150624.,
      2158352.,  2166080.,  4889248.,  4906848.,  4924448.,  4942048.,
      4981880.,  4999568.,  5017256.,  5034944.,  6662629.,  6687434.,
      6712239.,  6737044.,  6791350.,  6816276.,  6841202.,  6866128.,
      6894765.,  6920538.,  6946311.,  6972084.,  7027358.,  7053252.,
      7079146.,  7105040.,  4333973.,  4350682.,  4367391.,  4384100.,
      4419002.,  4435788.,  4452574.,  4469360.,  7689888.,  7718752.,
      7747616.,  7776480.,  7827576.,  7856528.,  7885480.,  7914432.,
      10376805., 10417098., 10457391., 10497684., 10567478., 10607892.,
      10648306., 10688720., 10608941., 10650202., 10691463., 10732724.,
      10803486., 10844868., 10886250., 10927632., 6623253.,  6649818.,
      6676383.,  6702948.,  6747706.,  6774348.,  6800990.,  6827632.,
      5122336.,  5144288.,  5166240.,  5188192.,  5223000.,  5245008.,
      5267016.,  5289024.,  6945337.,  6975906.,  7006475.,  7037044.,
      7084750.,  7115396.,  7146042.,  7176688.,  7079969.,  7111154.,
      7142339.,  7173524.,  7221846.,  7253108.,  7284370.,  7315632.,
      4537001.,  4557042.,  4577083.,  4597124.,  4627938.,  4648028.,
      4668118.,  4688208.,  2231040.,  2238720.,  2246400.,  2254080.,
      2280512.,  2288256.,  2296000.,  2303744.,  3098328.,  3109328.,
      3120328.,  3131328.,  3167440.,  3178528.,  3189616.,  3200704.,
      3296408.,  3308112.,  3319816.,  3331520.,  3368336.,  3380128.,
      3391920.,  3403712.,  2096472.,  2104144.,  2111816.,  2119488.,
      2142896.,  2150624.,  2158352.,  2166080.,  4889248.,  4906848.,
      4924448.,  4942048.,  4981880.,  4999568.,  5017256.,  5034944.,
      6662629.,  6687434.,  6712239.,  6737044.,  6791350.,  6816276.,
      6841202.,  6866128.,  6894765.,  6920538.,  6946311.,  6972084.,
      7027358.,  7053252.,  7079146.,  7105040.,  4333973.,  4350682.,
      4367391.,  4384100.,  4419002.,  4435788.,  4452574.,  4469360.,
      7689888.,  7718752.,  7747616.,  7776480.,  7827576.,  7856528.,
      7885480.,  7914432.,  10376805., 10417098., 10457391., 10497684.,
      10567478., 10607892., 10648306., 10688720., 10608941., 10650202.,
      10691463., 10732724., 10803486., 10844868., 10886250., 10927632.,
      6623253.,  6649818.,  6676383.,  6702948.,  6747706.,  6774348.,
      6800990.,  6827632.,  5122336.,  5144288.,  5166240.,  5188192.,
      5223000.,  5245008.,  5267016.,  5289024.,  6945337.,  6975906.,
      7006475.,  7037044.,  7084750.,  7115396.,  7146042.,  7176688.,
      7079969.,  7111154.,  7142339.,  7173524.,  7221846.,  7253108.,
      7284370.,  7315632.,  4537001.,  4557042.,  4577083.,  4597124.,
      4627938.,  4648028.,  4668118.,  4688208.,  2231040.,  2238720.,
      2246400.,  2254080.,  2280512.,  2288256.,  2296000.,  2303744.,
      3098328.,  3109328.,  3120328.,  3131328.,  3167440.,  3178528.,
      3189616.,  3200704.,  3296408.,  3308112.,  3319816.,  3331520.,
      3368336.,  3380128.,  3391920.,  3403712.,  2096472.,  2104144.,
      2111816.,  2119488.,  2142896.,  2150624.,  2158352.,  2166080.,
      4889248.,  4906848.,  4924448.,  4942048.,  4981880.,  4999568.,
      5017256.,  5034944.,  6662629.,  6687434.,  6712239.,  6737044.,
      6791350.,  6816276.,  6841202.,  6866128.,  6894765.,  6920538.,
      6946311.,  6972084.,  7027358.,  7053252.,  7079146.,  7105040.,
      4333973.,  4350682.,  4367391.,  4384100.,  4419002.,  4435788.,
      4452574.,  4469360.,  7689888.,  7718752.,  7747616.,  7776480.,
      7827576.,  7856528.,  7885480.,  7914432.,  10376805., 10417098.,
      10457391., 10497684., 10567478., 10607892., 10648306., 10688720.,
      10608941., 10650202., 10691463., 10732724., 10803486., 10844868.,
      10886250., 10927632., 6623253.,  6649818.,  6676383.,  6702948.,
      6747706.,  6774348.,  6800990.,  6827632.,  5122336.,  5144288.,
      5166240.,  5188192.,  5223000.,  5245008.,  5267016.,  5289024.,
      6945337.,  6975906.,  7006475.,  7037044.,  7084750.,  7115396.,
      7146042.,  7176688.,  7079969.,  7111154.,  7142339.,  7173524.,
      7221846.,  7253108.,  7284370.,  7315632.,  4537001.,  4557042.,
      4577083.,  4597124.,  4627938.,  4648028.,  4668118.,  4688208.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256., 5676051., 5696742., 5717433.,
      5738124., 5788316., 5809128., 5829940., 5850752., 5908187., 5929846.,
      5951505., 5973164., 6024324., 6046104., 6067884., 6089664., 9390227.,
      9426406., 9462585., 9498764., 9564444., 9600744., 9637044., 9673344.,
      9622363., 9659510., 9696657., 9733804., 9800452., 9837720., 9874988.,
      9912256., 5676051., 5696742., 5717433., 5738124., 5788316., 5809128.,
      5829940., 5850752., 5908187., 5929846., 5951505., 5973164., 6024324.,
      6046104., 6067884., 6089664., 9390227., 9426406., 9462585., 9498764.,
      9564444., 9600744., 9637044., 9673344., 9622363., 9659510., 9696657.,
      9733804., 9800452., 9837720., 9874988., 9912256.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5739200., 5774592., 5810112., 5845760., 8042056., 8091072., 8140264.,
      8189632., 8474312., 8524736., 8575336., 8626112., 5402600., 5434688.,
      5466888., 5499200., 4588152., 4628704., 4669432., 4710336., 6455009.,
      6511252., 6567737., 6624464., 6921585., 6979764., 7038185., 7096848.,
      4393669., 4430692., 4467869., 4505200., 6466168., 6512864., 6559736.,
      6606784., 8986593., 9051284., 9116217., 9181392., 9453169., 9519796.,
      9586665., 9653776., 5961669., 6004068., 6046621., 6089328., 3048472.,
      3072608., 3096856., 3121216., 4190109., 4223604., 4257253., 4291056.,
      4378605., 4413332., 4448213., 4483248., 2722097., 2744196., 2766393.,
      2788688., 5739200., 5774592., 5810112., 5845760., 8042056., 8091072.,
      8140264., 8189632., 8474312., 8524736., 8575336., 8626112., 5402600.,
      5434688., 5466888., 5499200., 4588152., 4628704., 4669432., 4710336.,
      6455009., 6511252., 6567737., 6624464., 6921585., 6979764., 7038185.,
      7096848., 4393669., 4430692., 4467869., 4505200., 6466168., 6512864.,
      6559736., 6606784., 8986593., 9051284., 9116217., 9181392., 9453169.,
      9519796., 9586665., 9653776., 5961669., 6004068., 6046621., 6089328.,
      3048472., 3072608., 3096856., 3121216., 4190109., 4223604., 4257253.,
      4291056., 4378605., 4413332., 4448213., 4483248., 2722097., 2744196.,
      2766393., 2788688., 5739200., 5774592., 5810112., 5845760., 8042056.,
      8091072., 8140264., 8189632., 8474312., 8524736., 8575336., 8626112.,
      5402600., 5434688., 5466888., 5499200., 4588152., 4628704., 4669432.,
      4710336., 6455009., 6511252., 6567737., 6624464., 6921585., 6979764.,
      7038185., 7096848., 4393669., 4430692., 4467869., 4505200., 6466168.,
      6512864., 6559736., 6606784., 8986593., 9051284., 9116217., 9181392.,
      9453169., 9519796., 9586665., 9653776., 5961669., 6004068., 6046621.,
      6089328., 3048472., 3072608., 3096856., 3121216., 4190109., 4223604.,
      4257253., 4291056., 4378605., 4413332., 4448213., 4483248., 2722097.,
      2744196., 2766393., 2788688.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148., 6902973.,
      6959040., 7865341., 7927436., 7989773., 8052352., 8331917., 8395948.,
      8460221., 8524736., 6324989., 6378636., 6432525., 6486656., 6791565.,
      6847148., 6902973., 6959040., 7865341., 7927436., 7989773., 8052352.,
      8331917., 8395948., 8460221., 8524736., 6324989., 6378636., 6432525.,
      6486656., 6791565., 6847148., 6902973., 6959040., 7865341., 7927436.,
      7989773., 8052352., 8331917., 8395948., 8460221., 8524736.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4443584., 4458880., 4492800., 4508160., 4542272., 4557696., 4592000.,
      4607488., 6171896., 6193808., 6240656., 6262656., 6309768., 6331856.,
      6379232., 6401408., 6568056., 6591376., 6639632., 6663040., 6711560.,
      6735056., 6783840., 6807424., 4177432., 4192720., 4223632., 4238976.,
      4270056., 4285456., 4316704., 4332160., 5021640., 5040368., 5081152.,
      5099968., 5141016., 5159920., 5201232., 5220224., 7055985., 7082946.,
      7139166., 7166248., 7222831., 7250034., 7306980., 7334304., 7520257.,
      7549154., 7607310., 7636328., 7694847., 7723986., 7782868., 7812128.,
      4908365., 4927370., 4964414., 4983496., 5020771., 5039930., 5077436.,
      5096672., 5887944., 5912816., 5959744., 5984704., 6031896., 6056944.,
      6104400., 6129536., 8047473., 8082882., 8147550., 8183080., 8248111.,
      8283762., 8349156., 8384928., 8511745., 8549090., 8615694., 8653160.,
      8720127., 8757714., 8825044., 8862752., 5286477., 5310858., 5353278.,
      5377736., 5420387., 5444922., 5487804., 5512416., 3764456., 3779632.,
      3807552., 3822784., 3850872., 3866160., 3894416., 3909760., 5257397.,
      5279034., 5317654., 5339368., 5378219., 5400010., 5439092., 5460960.,
      5526661., 5549530., 5589382., 5612328., 5652411., 5675434., 5715748.,
      5738848., 3648001., 3662946., 3688566., 3703560., 3729327., 3744370.,
      3770284., 3785376., 4443584., 4458880., 4492800., 4508160., 4542272.,
      4557696., 4592000., 4607488., 6171896., 6193808., 6240656., 6262656.,
      6309768., 6331856., 6379232., 6401408., 6568056., 6591376., 6639632.,
      6663040., 6711560., 6735056., 6783840., 6807424., 4177432., 4192720.,
      4223632., 4238976., 4270056., 4285456., 4316704., 4332160., 5021640.,
      5040368., 5081152., 5099968., 5141016., 5159920., 5201232., 5220224.,
      7055985., 7082946., 7139166., 7166248., 7222831., 7250034., 7306980.,
      7334304., 7520257., 7549154., 7607310., 7636328., 7694847., 7723986.,
      7782868., 7812128., 4908365., 4927370., 4964414., 4983496., 5020771.,
      5039930., 5077436., 5096672., 5887944., 5912816., 5959744., 5984704.,
      6031896., 6056944., 6104400., 6129536., 8047473., 8082882., 8147550.,
      8183080., 8248111., 8283762., 8349156., 8384928., 8511745., 8549090.,
      8615694., 8653160., 8720127., 8757714., 8825044., 8862752., 5286477.,
      5310858., 5353278., 5377736., 5420387., 5444922., 5487804., 5512416.,
      3764456., 3779632., 3807552., 3822784., 3850872., 3866160., 3894416.,
      3909760., 5257397., 5279034., 5317654., 5339368., 5378219., 5400010.,
      5439092., 5460960., 5526661., 5549530., 5589382., 5612328., 5652411.,
      5675434., 5715748., 5738848., 3648001., 3662946., 3688566., 3703560.,
      3729327., 3744370., 3770284., 3785376., 4443584., 4458880., 4492800.,
      4508160., 4542272., 4557696., 4592000., 4607488., 6171896., 6193808.,
      6240656., 6262656., 6309768., 6331856., 6379232., 6401408., 6568056.,
      6591376., 6639632., 6663040., 6711560., 6735056., 6783840., 6807424.,
      4177432., 4192720., 4223632., 4238976., 4270056., 4285456., 4316704.,
      4332160., 5021640., 5040368., 5081152., 5099968., 5141016., 5159920.,
      5201232., 5220224., 7055985., 7082946., 7139166., 7166248., 7222831.,
      7250034., 7306980., 7334304., 7520257., 7549154., 7607310., 7636328.,
      7694847., 7723986., 7782868., 7812128., 4908365., 4927370., 4964414.,
      4983496., 5020771., 5039930., 5077436., 5096672., 5887944., 5912816.,
      5959744., 5984704., 6031896., 6056944., 6104400., 6129536., 8047473.,
      8082882., 8147550., 8183080., 8248111., 8283762., 8349156., 8384928.,
      8511745., 8549090., 8615694., 8653160., 8720127., 8757714., 8825044.,
      8862752., 5286477., 5310858., 5353278., 5377736., 5420387., 5444922.,
      5487804., 5512416., 3764456., 3779632., 3807552., 3822784., 3850872.,
      3866160., 3894416., 3909760., 5257397., 5279034., 5317654., 5339368.,
      5378219., 5400010., 5439092., 5460960., 5526661., 5549530., 5589382.,
      5612328., 5652411., 5675434., 5715748., 5738848., 3648001., 3662946.,
      3688566., 3703560., 3729327., 3744370., 3770284., 3785376.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184., 5899469., 5923834., 5977458.,
      6001944., 6055931., 6080538., 6134888., 6159616., 6363741., 6390042.,
      6445602., 6472024., 6527947., 6554490., 6610776., 6637440., 7792077.,
      7824890., 7886962., 7919896., 7982331., 8015386., 8078184., 8111360.,
      8256349., 8291098., 8355106., 8389976., 8454347., 8489338., 8554072.,
      8589184., 5899469., 5923834., 5977458., 6001944., 6055931., 6080538.,
      6134888., 6159616., 6363741., 6390042., 6445602., 6472024., 6527947.,
      6554490., 6610776., 6637440., 7792077., 7824890., 7886962., 7919896.,
      7982331., 8015386., 8078184., 8111360., 8256349., 8291098., 8355106.,
      8389976., 8454347., 8489338., 8554072., 8589184.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3999168.,  4014464.,  4029760., 4045056.,  4076544.,  4091904., 4107264.,
      4122624.,  4154432.,  4169856., 4185280.,  4200704.,  4232832., 4248320.,
      4263808.,  4279296.,  5471320., 5493232.,  5515144.,  5537056., 5580080.,
      5602080.,  5624080.,  5646080., 5689544.,  5711632.,  5733720., 5755808.,
      5799712.,  5821888.,  5844064., 5866240.,  5803480.,  5826800., 5850120.,
      5873440.,  5917872.,  5941280., 5964688.,  5988096.,  6032968., 6056464.,
      6079960.,  6103456.,  6148768., 6172352.,  6195936.,  6219520., 3791480.,
      3806768.,  3822056.,  3837344., 3865904.,  3881248.,  3896592., 3911936.,
      3940776.,  3956176.,  3971576., 3986976.,  4016096.,  4031552., 4047008.,
      4062464.,  4645480.,  4664208., 4682936.,  4701664.,  4742912., 4761728.,
      4780544.,  4799360.,  4841048., 4859952.,  4878856.,  4897760., 4939888.,
      4958880.,  4977872.,  4996864., 6326673.,  6353634.,  6380595., 6407556.,
      6463730.,  6490812.,  6517894., 6544976.,  6601755.,  6628958., 6656161.,
      6683364.,  6740748.,  6768072., 6795396.,  6822720.,  6786337., 6815234.,
      6844131.,  6873028.,  6931138., 6960156.,  6989174.,  7018192., 7076907.,
      7106046.,  7135185.,  7164324., 7223644.,  7252904.,  7282164., 7311424.,
      4332125.,  4351130.,  4370135., 4389140.,  4426226.,  4445308., 4464390.,
      4483472.,  4520943.,  4540102., 4559261.,  4578420.,  4616276., 4635512.,
      4654748.,  4673984.,  6634088., 6658960.,  6683832.,  6708704., 6756096.,
      6781056.,  6806016.,  6830976., 6878808.,  6903856.,  6928904., 6953952.,
      7002224.,  7027360.,  7052496., 7077632.,  8956561.,  8991970., 9027379.,
      9062788.,  9127410.,  9162940., 9198470.,  9234000.,  9299227., 9334878.,
      9370529.,  9406180.,  9472012., 9507784.,  9543556.,  9579328., 9416225.,
      9453570.,  9490915.,  9528260., 9594818.,  9632284.,  9669750., 9707216.,
      9774379.,  9811966.,  9849553., 9887140.,  9954908.,  9992616., 10030324.,
      10068032., 6000477.,  6024858., 6049239.,  6073620.,  6116082., 6140540.,
      6164998.,  6189456.,  6232303., 6256838.,  6281373.,  6305908., 6349140.,
      6373752.,  6398364.,  6422976., 3704968.,  3720144.,  3735320., 3750496.,
      3779328.,  3794560.,  3809792., 3825024.,  3854136.,  3869424., 3884712.,
      3900000.,  3929392.,  3944736., 3960080.,  3975424.,  4979941., 5001578.,
      5023215.,  5044852.,  5083994., 5105708.,  5127422.,  5149136., 5188663.,
      5210454.,  5232245.,  5254036., 5293948.,  5315816.,  5337684., 5359552.,
      5255093.,  5277962.,  5300831., 5323700.,  5364074.,  5387020., 5409966.,
      5432912.,  5473671.,  5496694., 5519717.,  5542740.,  5583884., 5606984.,
      5630084.,  5653184.,  3313569., 3328514.,  3343459.,  3358404., 3383898.,
      3398892.,  3413886.,  3428880., 3454619.,  3469662.,  3484705., 3499748.,
      3525732.,  3540824.,  3555916., 3571008.,  3999168.,  4014464., 4029760.,
      4045056.,  4076544.,  4091904., 4107264.,  4122624.,  4154432., 4169856.,
      4185280.,  4200704.,  4232832., 4248320.,  4263808.,  4279296., 5471320.,
      5493232.,  5515144.,  5537056., 5580080.,  5602080.,  5624080., 5646080.,
      5689544.,  5711632.,  5733720., 5755808.,  5799712.,  5821888., 5844064.,
      5866240.,  5803480.,  5826800., 5850120.,  5873440.,  5917872., 5941280.,
      5964688.,  5988096.,  6032968., 6056464.,  6079960.,  6103456., 6148768.,
      6172352.,  6195936.,  6219520., 3791480.,  3806768.,  3822056., 3837344.,
      3865904.,  3881248.,  3896592., 3911936.,  3940776.,  3956176., 3971576.,
      3986976.,  4016096.,  4031552., 4047008.,  4062464.,  4645480., 4664208.,
      4682936.,  4701664.,  4742912., 4761728.,  4780544.,  4799360., 4841048.,
      4859952.,  4878856.,  4897760., 4939888.,  4958880.,  4977872., 4996864.,
      6326673.,  6353634.,  6380595., 6407556.,  6463730.,  6490812., 6517894.,
      6544976.,  6601755.,  6628958., 6656161.,  6683364.,  6740748., 6768072.,
      6795396.,  6822720.,  6786337., 6815234.,  6844131.,  6873028., 6931138.,
      6960156.,  6989174.,  7018192., 7076907.,  7106046.,  7135185., 7164324.,
      7223644.,  7252904.,  7282164., 7311424.,  4332125.,  4351130., 4370135.,
      4389140.,  4426226.,  4445308., 4464390.,  4483472.,  4520943., 4540102.,
      4559261.,  4578420.,  4616276., 4635512.,  4654748.,  4673984., 6634088.,
      6658960.,  6683832.,  6708704., 6756096.,  6781056.,  6806016., 6830976.,
      6878808.,  6903856.,  6928904., 6953952.,  7002224.,  7027360., 7052496.,
      7077632.,  8956561.,  8991970., 9027379.,  9062788.,  9127410., 9162940.,
      9198470.,  9234000.,  9299227., 9334878.,  9370529.,  9406180., 9472012.,
      9507784.,  9543556.,  9579328., 9416225.,  9453570.,  9490915., 9528260.,
      9594818.,  9632284.,  9669750., 9707216.,  9774379.,  9811966., 9849553.,
      9887140.,  9954908.,  9992616., 10030324., 10068032., 6000477., 6024858.,
      6049239.,  6073620.,  6116082., 6140540.,  6164998.,  6189456., 6232303.,
      6256838.,  6281373.,  6305908., 6349140.,  6373752.,  6398364., 6422976.,
      3704968.,  3720144.,  3735320., 3750496.,  3779328.,  3794560., 3809792.,
      3825024.,  3854136.,  3869424., 3884712.,  3900000.,  3929392., 3944736.,
      3960080.,  3975424.,  4979941., 5001578.,  5023215.,  5044852., 5083994.,
      5105708.,  5127422.,  5149136., 5188663.,  5210454.,  5232245., 5254036.,
      5293948.,  5315816.,  5337684., 5359552.,  5255093.,  5277962., 5300831.,
      5323700.,  5364074.,  5387020., 5409966.,  5432912.,  5473671., 5496694.,
      5519717.,  5542740.,  5583884., 5606984.,  5630084.,  5653184., 3313569.,
      3328514.,  3343459.,  3358404., 3383898.,  3398892.,  3413886., 3428880.,
      3454619.,  3469662.,  3484705., 3499748.,  3525732.,  3540824., 3555916.,
      3571008.,  3999168.,  4014464., 4029760.,  4045056.,  4076544., 4091904.,
      4107264.,  4122624.,  4154432., 4169856.,  4185280.,  4200704., 4232832.,
      4248320.,  4263808.,  4279296., 5471320.,  5493232.,  5515144., 5537056.,
      5580080.,  5602080.,  5624080., 5646080.,  5689544.,  5711632., 5733720.,
      5755808.,  5799712.,  5821888., 5844064.,  5866240.,  5803480., 5826800.,
      5850120.,  5873440.,  5917872., 5941280.,  5964688.,  5988096., 6032968.,
      6056464.,  6079960.,  6103456., 6148768.,  6172352.,  6195936., 6219520.,
      3791480.,  3806768.,  3822056., 3837344.,  3865904.,  3881248., 3896592.,
      3911936.,  3940776.,  3956176., 3971576.,  3986976.,  4016096., 4031552.,
      4047008.,  4062464.,  4645480., 4664208.,  4682936.,  4701664., 4742912.,
      4761728.,  4780544.,  4799360., 4841048.,  4859952.,  4878856., 4897760.,
      4939888.,  4958880.,  4977872., 4996864.,  6326673.,  6353634., 6380595.,
      6407556.,  6463730.,  6490812., 6517894.,  6544976.,  6601755., 6628958.,
      6656161.,  6683364.,  6740748., 6768072.,  6795396.,  6822720., 6786337.,
      6815234.,  6844131.,  6873028., 6931138.,  6960156.,  6989174., 7018192.,
      7076907.,  7106046.,  7135185., 7164324.,  7223644.,  7252904., 7282164.,
      7311424.,  4332125.,  4351130., 4370135.,  4389140.,  4426226., 4445308.,
      4464390.,  4483472.,  4520943., 4540102.,  4559261.,  4578420., 4616276.,
      4635512.,  4654748.,  4673984., 6634088.,  6658960.,  6683832., 6708704.,
      6756096.,  6781056.,  6806016., 6830976.,  6878808.,  6903856., 6928904.,
      6953952.,  7002224.,  7027360., 7052496.,  7077632.,  8956561., 8991970.,
      9027379.,  9062788.,  9127410., 9162940.,  9198470.,  9234000., 9299227.,
      9334878.,  9370529.,  9406180., 9472012.,  9507784.,  9543556., 9579328.,
      9416225.,  9453570.,  9490915., 9528260.,  9594818.,  9632284., 9669750.,
      9707216.,  9774379.,  9811966., 9849553.,  9887140.,  9954908., 9992616.,
      10030324., 10068032., 6000477., 6024858.,  6049239.,  6073620., 6116082.,
      6140540.,  6164998.,  6189456., 6232303.,  6256838.,  6281373., 6305908.,
      6349140.,  6373752.,  6398364., 6422976.,  3704968.,  3720144., 3735320.,
      3750496.,  3779328.,  3794560., 3809792.,  3825024.,  3854136., 3869424.,
      3884712.,  3900000.,  3929392., 3944736.,  3960080.,  3975424., 4979941.,
      5001578.,  5023215.,  5044852., 5083994.,  5105708.,  5127422., 5149136.,
      5188663.,  5210454.,  5232245., 5254036.,  5293948.,  5315816., 5337684.,
      5359552.,  5255093.,  5277962., 5300831.,  5323700.,  5364074., 5387020.,
      5409966.,  5432912.,  5473671., 5496694.,  5519717.,  5542740., 5583884.,
      5606984.,  5630084.,  5653184., 3313569.,  3328514.,  3343459., 3358404.,
      3383898.,  3398892.,  3413886., 3428880.,  3454619.,  3469662., 3484705.,
      3499748.,  3525732.,  3540824., 3555916.,  3571008.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824., 6000749., 6025114., 6049479., 6073844., 6127422., 6151908.,
      6176394., 6200880., 6255063., 6279670., 6304277., 6328884., 6383672.,
      6408400., 6433128., 6457856., 6460413., 6486714., 6513015., 6539316.,
      6594830., 6621252., 6647674., 6674096., 6730215., 6756758., 6783301.,
      6809844., 6866568., 6893232., 6919896., 6946560., 7549293., 7582106.,
      7614919., 7647732., 7709758., 7742692., 7775626., 7808560., 7871191.,
      7904246., 7937301., 7970356., 8033592., 8066768., 8099944., 8133120.,
      8008957., 8043706., 8078455., 8113204., 8177166., 8212036., 8246906.,
      8281776., 8346343., 8381334., 8416325., 8451316., 8516488., 8551600.,
      8586712., 8621824., 6000749., 6025114., 6049479., 6073844., 6127422.,
      6151908., 6176394., 6200880., 6255063., 6279670., 6304277., 6328884.,
      6383672., 6408400., 6433128., 6457856., 6460413., 6486714., 6513015.,
      6539316., 6594830., 6621252., 6647674., 6674096., 6730215., 6756758.,
      6783301., 6809844., 6866568., 6893232., 6919896., 6946560., 7549293.,
      7582106., 7614919., 7647732., 7709758., 7742692., 7775626., 7808560.,
      7871191., 7904246., 7937301., 7970356., 8033592., 8066768., 8099944.,
      8133120., 8008957., 8043706., 8078455., 8113204., 8177166., 8212036.,
      8246906., 8281776., 8346343., 8381334., 8416325., 8451316., 8516488.,
      8551600., 8586712., 8621824.};
  const std::array<int, 4> in_shape = {{3, 16, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      356720.,  562936.,  590216.,  555060.,  332636.,  696080.,  1082224.,
      1111748., 1027290., 607706.,  1045352., 1613656., 1643180., 1506450.,
      885698.,  480984.,  728420.,  740432.,  674520.,  388276.,  1638896.,
      2527096., 2554376., 2329140., 1369436., 2093168., 3207952., 3237476.,
      2943930., 1719674., 2442440., 3739384., 3768908., 3423090., 1997666.,
      1059576., 1593284., 1605296., 1450680., 829780.,  2921072., 4491256.,
      4518536., 4103220., 2406236., 3490256., 5333680., 5363204., 4860570.,
      2831642., 3839528., 5865112., 5894636., 5339730., 3109634., 1638168.,
      2458148., 2470160., 2226840., 1271284.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      949366.,  978890.,  1480798., 1510322., 3075094., 3104618.,
      3606526., 3636050., 5200822., 5230346., 5732254., 5761778.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      709688.,   713440.,   1119800.,  1125872.,  1174008.,  1180432.,
      1104000.,  1110120.,  661504.,   665272.,   1383536.,  1392160.,
      2150654.,  2164448.,  2209218.,  2223496.,  2041215.,  2054580.,
      1207261.,  1215412.,  2076536.,  2090704.,  3204806.,  3227312.,
      3263370.,  3286360.,  2991615.,  3012900.,  1758493.,  1771396.,
      951188.,   961968.,   1439746.,  1456840.,  1463462.,  1480864.,
      1332975.,  1349040.,  766829.,   776552.,   3257912.,  3277792.,
      5022776.,  5054192.,  5076984.,  5108752.,  4629120.,  4658280.,
      2721280.,  2738872.,  4155536.,  4186336.,  6367262.,  6415904.,
      6425826.,  6474952.,  5842815.,  5887860.,  3412189.,  3439348.,
      4848536.,  4884880.,  7421414.,  7478768.,  7479978.,  7537816.,
      6793215.,  6846180.,  3963421.,  3995332.,  2094260.,  2119152.,
      3147298.,  3186568.,  3171014.,  3210592.,  2865135.,  2901360.,
      1637741.,  1659560.,  5806136.,  5842144.,  8925752.,  8982512.,
      8979960.,  9037072.,  8154240.,  8206440.,  4781056.,  4812472.,
      6927536.,  6980512.,  10583870., 10667360., 10642434., 10726408.,
      9644415.,  9721140.,  5617117.,  5663284.,  7620536.,  7679056.,
      11638022., 11730224., 11696586., 11789272., 10594815., 10679460.,
      6168349.,  6219268.,  3237332.,  3276336.,  4854850.,  4916296.,
      4878566.,  4940320.,  4397295.,  4453680.,  2508653.,  2542568.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1887116.,  1898732.,  1945680.,  1957780.,  2941268.,  2961596.,
      2999832.,  3020644.,  6103724.,  6150188.,  6162288.,  6209236.,
      7157876.,  7213052.,  7216440.,  7272100.,  10320332., 10401644.,
      10378896., 10460692., 11374484., 11464508., 11433048., 11523556.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1415624.,  1419376.,  1423128.,  1426880.,  2233528.,  2239600.,
      2245672.,  2251744.,  2341592.,  2348016.,  2354440.,  2360864.,
      2201880.,  2208000.,  2214120.,  2220240.,  1319240.,  1323008.,
      1326776.,  1330544.,  2758448.,  2767072.,  2775696.,  2784320.,
      4287514.,  4301308.,  4315102.,  4328896.,  4404158.,  4418436.,
      4432714.,  4446992.,  4069065.,  4082430.,  4095795.,  4109160.,
      2406371.,  2414522.,  2422673.,  2430824.,  4138904.,  4153072.,
      4167240.,  4181408.,  6387106.,  6409612.,  6432118.,  6454624.,
      6503750.,  6526740.,  6549730.,  6572720.,  5961945.,  5983230.,
      6004515.,  6025800.,  3504083.,  3516986.,  3529889.,  3542792.,
      1891596.,  1902376.,  1913156.,  1923936.,  2862398.,  2879492.,
      2896586.,  2913680.,  2909522.,  2926924.,  2944326.,  2961728.,
      2649885.,  2665950.,  2682015.,  2698080.,  1523935.,  1533658.,
      1543381.,  1553104.,  6495944.,  6515824.,  6535704.,  6555584.,
      10014136., 10045552., 10076968., 10108384., 10122200., 10153968.,
      10185736., 10217504., 9229080.,  9258240.,  9287400.,  9316560.,
      5424968.,  5442560.,  5460152.,  5477744.,  8280272.,  8311072.,
      8341872.,  8372672.,  12685882., 12734524., 12783166., 12831808.,
      12802526., 12851652., 12900778., 12949904., 11640585., 11685630.,
      11730675., 11775720., 6797219.,  6824378.,  6851537.,  6878696.,
      5091128.,  5116720.,  5142312.,  5167904.,  7209922.,  7248844.,
      7287766.,  7326688.,  6648678.,  6686036.,  6723394.,  6760752.,
      5484825.,  5517310.,  5549795.,  5582280.,  3164051.,  3183674.,
      3203297.,  3222920.,  1486380.,  1500520.,  1514660.,  1528800.,
      1923806.,  1944644.,  1965482.,  1986320.,  1653490.,  1672588.,
      1691686.,  1710784.,  1249885.,  1265630.,  1281375.,  1297120.,
      685471.,   695002.,   704533.,   714064.,   2544584.,  2551920.,
      2559256.,  2566592.,  3962552.,  3974256.,  3985960.,  3997664.,
      4070616.,  4082672.,  4094728.,  4106784.,  3763480.,  3774720.,
      3785960.,  3797200.,  2231624.,  2238464.,  2245304.,  2252144.,
      3985520.,  3999072.,  4012624.,  4026176.,  6153818.,  6175356.,
      6196894.,  6218432.,  6270462.,  6292484.,  6314506.,  6336528.,
      5751625.,  5772030.,  5792435.,  5812840.,  3382115.,  3394490.,
      3406865.,  3419240.,  5365976.,  5385072.,  5404168.,  5423264.,
      8253410.,  8283660.,  8313910.,  8344160.,  8370054.,  8400788.,
      8431522.,  8462256.,  7644505.,  7672830.,  7701155.,  7729480.,
      4479827.,  4496954.,  4514081.,  4531208.,  2396492.,  2410408.,
      2424324.,  2438240.,  3616382.,  3638404.,  3660426.,  3682448.,
      3663506.,  3685836.,  3708166.,  3730496.,  3326365.,  3346910.,
      3367455.,  3388000.,  1908319.,  1920730.,  1933141.,  1945552.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616.,  3774232.,  3785848.,  3797464.,  3879260.,  3891360.,
      3903460.,  3915560.,  5862208.,  5882536.,  5902864.,  5923192.,
      5978852.,  5999664.,  6020476.,  6041288.,  12160984., 12207448.,
      12253912., 12300376., 12277628., 12324576., 12371524., 12418472.,
      8718176.,  8760552.,  8802928.,  8845304.,  8066820.,  8107632.,
      8148444.,  8189256.,  5628920.,  5648280.,  5667640.,  5687000.,
      5745564.,  5765408.,  5785252.,  5805096.,  7728512.,  7756584.,
      7784656.,  7812728.,  7845156.,  7873712.,  7902268.,  7930824.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1410528.,  1426880.,  2226048.,  2251744.,  2334464.,  2360864.,
      2195760.,  2220240.,  1315856.,  1330544.,  2757447.,  2784320.,
      4286667.,  4328896.,  4403795.,  4446992.,  4069230.,  4109160.,
      2406866.,  2430824.,  4143447.,  4181408.,  6394971.,  6454624.,
      6512099.,  6572720.,  5970030.,  6025800.,  3509330.,  3542792.,
      1898407.,  1923936.,  2873563.,  2913680.,  2920995.,  2961728.,
      2660630.,  2698080.,  1530634.,  1553104.,  6506976.,  6555584.,
      10032000., 10108384., 10140416., 10217504., 9246000.,  9316560.,
      5435408.,  5477744.,  8301447.,  8372672.,  12719883., 12831808.,
      12837011., 12949904., 11672430., 11775720., 6816722.,  6878696.,
      5107095.,  5167904.,  7234203.,  7326688.,  6671395.,  6760752.,
      5504110.,  5582280.,  3176018.,  3222920.,  1496551.,  1528800.,
      1938715.,  1986320.,  1666659.,  1710784.,  1260310.,  1297120.,
      691978.,   714064.,   2543072.,  2566592.,  3960704.,  3997664.,
      4069120.,  4106784.,  3762480.,  3797200.,  2231312.,  2252144.,
      3989447.,  4026176.,  6160715.,  6218432.,  6277843.,  6336528.,
      5758830.,  5812840.,  3386834.,  3419240.,  5375447.,  5423264.,
      8269019.,  8344160.,  8386147.,  8462256.,  7659630.,  7729480.,
      4489298.,  4531208.,  2406439.,  2438240.,  3632475.,  3682448.,
      3679907.,  3730496.,  3341590.,  3388000.,  1917706.,  1945552.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3759591., 3797464., 3876719.,  3915560.,  5867895.,  5923192.,
      5985023., 6041288., 12192807., 12300376., 12309935., 12418472.,
      8745911., 8845304., 8092991.,  8189256.,  5633639.,  5687000.,
      5750767., 5805096., 7741943.,  7812728.,  7859071.,  7930824.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2813608.,  2821056.,  2846256.,  2853760.,  4440040.,  4452096.,
      4491344.,  4503488.,  4656168.,  4668928.,  4708880.,  4721728.,
      4379360.,  4391520.,  4428240.,  4440480.,  2624224.,  2631712.,
      2653552.,  2661088.,  5497723.,  5514894.,  5551392.,  5568640.,
      8545867.,  8573334.,  8630204.,  8657792.,  8779155.,  8807590.,
      8865428.,  8893984.,  8111840.,  8138460.,  8191590.,  8218320.,
      4797496.,  4813732.,  4845346.,  4861648.,  5912651.,  5935790.,
      5978256.,  6001472.,  8625499.,  8661174.,  8726252.,  8762048.,
      8033443.,  8068038.,  8132036.,  8166752.,  7422720.,  7454940.,
      7513670.,  7546000.,  4357144.,  4376740.,  4411714.,  4431376.,
      2330439.,  2346830.,  2371208.,  2387648.,  3215479.,  3240374.,
      3277204.,  3302176.,  2844831.,  2868294.,  2903692.,  2927232.,
      2616560.,  2638380.,  2670910.,  2692800.,  1487432.,  1500692.,
      1520042.,  1533344.,  3942568.,  3953600.,  3982384.,  3993472.,
      6169064.,  6186752.,  6231632.,  6249408.,  6385192.,  6403584.,
      6449168.,  6467648.,  5940960.,  5958240.,  6000080.,  6017440.,
      3536608.,  3547168.,  3572080.,  3582688.,  6724795.,  6746894.,
      6788320.,  6810496.,  10412171., 10447382., 10511996., 10547328.,
      10645459., 10681638., 10747220., 10783520., 9794400.,  9828060.,
      9888230.,  9922000.,  5773240.,  5793700.,  5829538.,  5850064.,
      4916107.,  4938542.,  4980304.,  5002816.,  7035803.,  7070006.,
      7133612.,  7167936.,  6591203.,  6624326.,  6686852.,  6720096.,
      5531520.,  5560540.,  5616070.,  5645200.,  3237784.,  3255460.,
      3288514.,  3306256.,  1602951.,  1616846.,  1638728.,  1652672.,
      2135479.,  2156086.,  2188628.,  2209312.,  1912287.,  1931462.,
      1962572.,  1981824.,  1521520.,  1537580.,  1564350.,  1580480.,
      858056.,   867860.,   883754.,   893600.,   5071528.,  5086144.,
      5118512.,  5133184.,  7898088.,  7921408.,  7971920.,  7995328.,
      8114216.,  8138240.,  8189456.,  8213568.,  7502560.,  7524960.,
      7571920.,  7594400.,  4448992.,  4462624.,  4490608.,  4504288.,
      6270971.,  6294414.,  6337184.,  6360704.,  9682123.,  9719446.,
      9786172.,  9823616.,  9250323.,  9287078.,  9353236.,  9390112.,
      7827424.,  7859932.,  7918950.,  7951568.,  4113208.,  4131748.,
      4165666.,  4184272.,  3885259.,  3905454.,  3944976.,  3965248.,
      5973979.,  6006198.,  6067820.,  6100160.,  5812515.,  5844166.,
      5905220.,  5936992.,  5006336.,  5034204.,  5088582.,  5116560.,
      2659096.,  2674852.,  2705986.,  2721808.,  1111495.,  1121358.,
      1139208.,  1149120.,  1673463.,  1689270.,  1717012.,  1732896.,
      1643295.,  1658182.,  1685004.,  1699968.,  1432048.,  1444396.,
      1467454.,  1479872.,  769352.,   775700.,   788138.,   794528.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  10014359., 10051310., 10117664., 10154736.,
      9332191.,  9368062.,  9433336.,  9469328.,  9362375.,  9393230.,
      9453488.,  9484464.,  9595663.,  9627486.,  9688712.,  9720656.,
      8019159.,  8054638.,  8119520.,  8155120.,  7484447.,  7518846.,
      7582648.,  7617168.,  11228679., 11267278., 11335280., 11374000.,
      10729295., 10767326., 10834760., 10872912., 6529303.,  6562798.,
      6625696.,  6659312.,  6300255.,  6333182.,  6395512.,  6428560.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2182712., 2190160., 2197608., 2205056., 2229008., 2236512., 2244016.,
      2251520., 3395256., 3407312., 3419368., 3431424., 3468592., 3480736.,
      3492880., 3505024., 3593336., 3606096., 3618856., 3631616., 3669488.,
      3682336., 3695184., 3708032., 3418176., 3430336., 3442496., 3454656.,
      3489744., 3501984., 3514224., 3526464., 2015360., 2022848., 2030336.,
      2037824., 2058608., 2066144., 2073680., 2081216., 4813283., 4830454.,
      4847625., 4864796., 4901600., 4918848., 4936096., 4953344., 7389003.,
      7416470., 7443937., 7471404., 7528372., 7555960., 7583548., 7611136.,
      7621139., 7649574., 7678009., 7706444., 7764380., 7792936., 7821492.,
      7850048., 7108548., 7135168., 7161788., 7188408., 7241826., 7268556.,
      7295286., 7322016., 4141316., 4157552., 4173788., 4190024., 4221590.,
      4237892., 4254194., 4270496., 5530675., 5553814., 5576953., 5600092.,
      5642864., 5666080., 5689296., 5712512., 8056155., 8091830., 8127505.,
      8163180., 8228356., 8264152., 8299948., 8335744., 7688227., 7722822.,
      7757417., 7792012., 7856108., 7890824., 7925540., 7960256., 7207460.,
      7239680., 7271900., 7304120., 7363138., 7395468., 7427798., 7460128.,
      4191140., 4210736., 4230332., 4249928., 4284854., 4304516., 4324178.,
      4343840., 4514951., 4531342., 4547733., 4564124., 4591832., 4608272.,
      4624712., 4641152., 6174127., 6199022., 6223917., 6248812., 6290844.,
      6315816., 6340788., 6365760., 5381015., 5404478., 5427941., 5451404.,
      5492004., 5515544., 5539084., 5562624., 4920996., 4942816., 4964636.,
      4986456., 5023994., 5045884., 5067774., 5089664., 2783428., 2796688.,
      2809948., 2823208., 2845534., 2858836., 2872138., 2885440., 3224632.,
      3235664., 3246696., 3257728., 3285264., 3296352., 3307440., 3318528.,
      4979896., 4997584., 5015272., 5032960., 5075760., 5093536., 5111312.,
      5129088., 5177976., 5196368., 5214760., 5233152., 5276656., 5295136.,
      5313616., 5332096., 4865088., 4882368., 4899648., 4916928., 4957136.,
      4974496., 4991856., 5009216., 2854016., 2864576., 2875136., 2885696.,
      2909552., 2920160., 2930768., 2941376., 6050083., 6072182., 6094281.,
      6116380., 6158112., 6180288., 6202464., 6224640., 9246091., 9281302.,
      9316513., 9351724., 9416436., 9451768., 9487100., 9522432., 9478227.,
      9514406., 9550585., 9586764., 9652444., 9688744., 9725044., 9761344.,
      8795460., 8829120., 8862780., 8896440., 8956898., 8990668., 9024438.,
      9058208., 5105540., 5126000., 5146460., 5166920., 5202710., 5223236.,
      5243762., 5264288., 5209459., 5231894., 5254329., 5276764., 5318832.,
      5341344., 5363856., 5386368., 7729051., 7763254., 7797457., 7831660.,
      7895364., 7929688., 7964012., 7998336., 7656035., 7689158., 7722281.,
      7755404., 7818028., 7851272., 7884516., 7917760., 6999972., 7028992.,
      7058012., 7087032., 7142850., 7171980., 7201110., 7230240., 4117028.,
      4134704., 4152380., 4170056., 4203062., 4220804., 4238546., 4256288.,
      2767559., 2781454., 2795349., 2809244., 2834456., 2848400., 2862344.,
      2876288., 3592431., 3613038., 3633645., 3654252., 3691996., 3712680.,
      3733364., 3754048., 3094231., 3113406., 3132581., 3151756., 3188068.,
      3207320., 3226572., 3245824., 2376228., 2392288., 2408348., 2424408.,
      2456186., 2472316., 2488446., 2504576., 1331524., 1341328., 1351132.,
      1360936., 1379806., 1389652., 1399498., 1409344., 4266552., 4281168.,
      4295784., 4310400., 4341520., 4356192., 4370864., 4385536., 6564536.,
      6587856., 6611176., 6634496., 6682928., 6706336., 6729744., 6753152.,
      6762616., 6786640., 6810664., 6834688., 6883824., 6907936., 6932048.,
      6956160., 6312000., 6334400., 6356800., 6379200., 6424528., 6447008.,
      6469488., 6491968., 3692672., 3706304., 3719936., 3733568., 3760496.,
      3774176., 3787856., 3801536., 5763683., 5787126., 5810569., 5834012.,
      5877088., 5900608., 5924128., 5947648., 8799691., 8837014., 8874337.,
      8911660., 8978484., 9015928., 9053372., 9090816., 8489619., 8526374.,
      8563129., 8599884., 8666140., 8703016., 8739892., 8776768., 7385796.,
      7418304., 7450812., 7483320., 7542626., 7575244., 7607862., 7640480.,
      3950084., 3968624., 3987164., 4005704., 4039574., 4058180., 4076786.,
      4095392., 5607603., 5627798., 5647993., 5668188., 5708016., 5728288.,
      5748560., 5768832., 8720347., 8752566., 8784785., 8817004., 8878724.,
      8911064., 8943404., 8975744., 8688803., 8720454., 8752105., 8783756.,
      8844908., 8876680., 8908452., 8940224., 7163172., 7191040., 7218908.,
      7246776., 7301442., 7329420., 7357398., 7385376., 3551396., 3567152.,
      3582908., 3598664., 3629750., 3645572., 3661394., 3677216., 1493767.,
      1503630., 1513493., 1523356., 1544536., 1554448., 1564360., 1574272.,
      2247215., 2263022., 2278829., 2294636., 2327580., 2343464., 2359348.,
      2375232., 2134551., 2149438., 2164325., 2179212., 2211236., 2226200.,
      2241164., 2256128., 1840548., 1852896., 1865244., 1877592., 1905658.,
      1918076., 1930494., 1942912., 960964.,  967312.,  973660.,  980008.,
      995422.,  1001812., 1008202., 1014592.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391.,  6367502.,  6390613.,  6413724.,  6466336.,  6489568.,
      6512800.,  6536032.,  6576527.,  6600606.,  6624685.,  6648764.,
      6702344.,  6726544.,  6750744.,  6774944.,  8999639.,  9036590.,
      9073541.,  9110492.,  9176944.,  9214016.,  9251088.,  9288160.,
      8451487.,  8487358.,  8523229.,  8559100.,  8624472.,  8660464.,
      8696456.,  8732448.,  8201479.,  8232334.,  8263189.,  8294044.,
      8354400.,  8385376.,  8416352.,  8447328.,  8433615.,  8465438.,
      8497261.,  8529084.,  8590408.,  8622352.,  8654296.,  8686240.,
      7861527.,  7897006.,  7932485.,  7967964.,  8032944.,  8068544.,
      8104144.,  8139744.,  7608287.,  7642686.,  7677085.,  7711484.,
      7775384.,  7809904.,  7844424.,  7878944.,  10058567., 10097166.,
      10135765., 10174364., 10242464., 10281184., 10319904., 10358624.,
      9613327.,  9651358.,  9689389.,  9727420.,  9794952.,  9833104.,
      9871256.,  9909408.,  7996759.,  8030254.,  8063749.,  8097244.,
      8160240.,  8193856.,  8227472.,  8261088.,  8092191.,  8125118.,
      8158045.,  8190972.,  8253400.,  8286448.,  8319496.,  8352544.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4398696., 4428672., 4458760., 4488960., 6710344., 6756864., 6803560.,
      6850432., 6688968., 6735872., 6782952., 6830208., 6384240., 6427840.,
      6471600., 6515520., 3848720., 3874880., 3901136., 3927488., 4438545.,
      4475164., 4511937., 4548864., 6832301., 6889260., 6946461., 7003904.,
      7025469., 7083340., 7141453., 7199808., 6699790., 6753720., 6807870.,
      6862240., 4004066., 4036424., 4068914., 4101536., 4810673., 4850012.,
      4889505., 4929152., 6988493., 7048556., 7108861., 7169408., 6536541.,
      6595468., 6654637., 6714048., 6253390., 6308280., 6363390., 6418720.,
      3731618., 3764552., 3797618., 3830816., 2058685., 2079388., 2100189.,
      2121088., 2884841., 2916204., 2947721., 2979392., 2608441., 2638988.,
      2669689., 2700544., 2483350., 2511960., 2540710., 2569600., 1448218.,
      1465384., 1482634., 1499968., 4462184., 4494208., 4526344., 4558592.,
      6380616., 6429184., 6477928., 6526848., 6061256., 6109184., 6157288.,
      6205568., 5483120., 5526720., 5570480., 5614400., 3308048., 3334208.,
      3360464., 3386816., 5599377., 5640732., 5682241., 5723904., 8399149.,
      8462380., 8525853., 8589568., 8474557., 8537676., 8601037., 8664640.,
      7842830., 7900600., 7958590., 8016800., 4671458., 4706120., 4740914.,
      4775840., 4649009., 4687452., 4726049., 4764800., 6721357., 6778476.,
      6835837., 6893440., 6479325., 6534284., 6589485., 6644928., 5624910.,
      5673400., 5722110., 5771040., 3385250., 3414344., 3443570., 3472928.,
      1836093., 1857436., 1878877., 1900416., 2558825., 2590828., 2622985.,
      2655296., 2429881., 2461068., 2492409., 2523904., 2064790., 2092120.,
      2119590., 2147200., 1203226., 1219624., 1236106., 1252672., 4348008.,
      4380544., 4413192., 4445952., 6714440., 6765056., 6815848., 6866816.,
      6542536., 6592512., 6642664., 6692992., 5756528., 5801152., 5845936.,
      5890880., 3308048., 3334208., 3360464., 3386816., 5171985., 5212956.,
      5254081., 5295360., 8033197., 8097068., 8161181., 8225536., 7590973.,
      7653196., 7715661., 7778368., 6330638., 6385080., 6439742., 6494624.,
      3243746., 3274568., 3305522., 3336608., 4762289., 4800348., 4838561.,
      4876928., 7492045., 7551852., 7611901., 7672192., 7563869., 7624076.,
      7684525., 7745216., 6782286., 6836664., 6891262., 6946080., 3782306.,
      3813704., 3845234., 3876896., 1849533., 1869980., 1890525., 1911168.,
      2850793., 2882924., 2915209., 2947648., 2914873., 2946700., 2978681.,
      3010816., 2651798., 2679896., 2708134., 2736512., 1498906., 1514536.,
      1530250., 1546048.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788., 6640821.,
      6696096., 7986501., 8049116., 8111973., 8175072., 7399381., 7460860.,
      7522581., 7584544., 7544229., 7604380., 7664773., 7725408., 7529525.,
      7589564., 7649845., 7710368., 6908357., 6968028., 7027941., 7088096.,
      6486101., 6543612., 6601365., 6659360., 9369125., 9435548., 9502213.,
      9569120., 8769205., 8833980., 8898997., 8964256., 6997573., 7054300.,
      7111269., 7168480., 7001813., 7058940., 7116309., 7173920.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3240664., 3252944., 3281616., 3293952., 3322792., 3335184., 3364192.,
      3376640., 4844216., 4863632., 4907984., 4927488., 4972104., 4991696.,
      5036576., 5056256., 4858424., 4878224., 4922960., 4942848., 4987848.,
      5007824., 5053088., 5073152., 4740144., 4759264., 4801152., 4820352.,
      4862480., 4881760., 4924128., 4943488., 2822608., 2834464., 2859520.,
      2871424., 2896624., 2908576., 2933920., 2945920., 5199433., 5216802.,
      5253650., 5271096., 5308175., 5325698., 5363008., 5380608., 8209213.,
      8236890., 8293826., 8321624., 8378923., 8406842., 8464504., 8492544.,
      8651981., 8680570., 8738418., 8767128., 8825339., 8854170., 8912744.,
      8941696., 8328338., 8355868., 8409976., 8437616., 8492054., 8519804.,
      8574572., 8602432., 4995886., 5012932., 5045176., 5062288., 5094730.,
      5111908., 5144548., 5161792., 4155113., 4175202., 4214770., 4234936.,
      4274735., 4294978., 4335008., 4355328., 5880669., 5911450., 5971490.,
      6002392., 6062795., 6093818., 6154584., 6185728., 5559533., 5589178.,
      5648082., 5677848., 5737115., 5767002., 5826632., 5856640., 5419346.,
      5447836., 5502904., 5531504., 5586902., 5615612., 5671340., 5700160.,
      3172462., 3190084., 3222904., 3240592., 3273610., 3291364., 3324580.,
      3342400., 3850141., 3862906., 3886890., 3899704., 3923835., 3936698.,
      3960976., 3973888., 5292961., 5312466., 5348954., 5368536., 5405255.,
      5424914., 5461864., 5481600., 4634481., 4653170., 4688842., 4707608.,
      4743511., 4762354., 4798488., 4817408., 4373754., 4391724., 4425272.,
      4443312., 4477070., 4495180., 4529148., 4547328., 2532038., 2543156.,
      2563256., 2574416., 2594642., 2605844., 2626196., 2637440., 3562200.,
      3576528., 3607248., 3621632., 3652520., 3666960., 3698016., 3712512.,
      5165752., 5187216., 5233616., 5255168., 5301832., 5323472., 5370400.,
      5392128., 5109304., 5130128., 5175888., 5196800., 5242824., 5263824.,
      5310112., 5331200., 4838448., 4857568., 4899456., 4918656., 4960784.,
      4980064., 5022432., 5041792., 2920912., 2932768., 2957824., 2969728.,
      2994928., 3006880., 3032224., 3044224., 6140105., 6162210., 6203794.,
      6225976., 6267791., 6290050., 6332096., 6354432., 8649661., 8683610.,
      8746818., 8780888., 8844459., 8878650., 8942584., 8976896., 8333645.,
      8367482., 8430578., 8464536., 8527995., 8562074., 8625896., 8660096.,
      7530386., 7561756., 7619704., 7651184., 7709462., 7741052., 7799660.,
      7831360., 4362286., 4381636., 4416184., 4435600., 4470346., 4489828.,
      4524772., 4544320., 4291433., 4310626., 4349298., 4368568., 4407471.,
      4426818., 4465952., 4485376., 6332381., 6360218., 6417314., 6445272.,
      6502731., 6530810., 6588632., 6616832., 6432109., 6457786., 6512722.,
      6538520., 6593819., 6619738., 6675400., 6701440., 6069330., 6091420.,
      6140088., 6162288., 6211286., 6233596., 6282924., 6305344., 3663214.,
      3676996., 3705976., 3719824., 3749002., 3762916., 3792292., 3806272.,
      2814493., 2827898., 2852522., 2865976., 2890747., 2904250., 2929168.,
      2942720., 3788321., 3808466., 3845594., 3865816., 3903175., 3923474.,
      3961064., 3981440., 3424753., 3444082., 3480394., 3499800., 3536343.,
      3555826., 3592600., 3612160., 2817018., 2833708., 2865976., 2882736.,
      2915214., 2932044., 2964732., 2981632., 1649606., 1659956., 1679288.,
      1689680., 1709138., 1719572., 1739156., 1749632., 4316376., 4331216.,
      4362448., 4377344., 4408744., 4423696., 4455264., 4470272., 6814392.,
      6837904., 6886352., 6909952., 6958664., 6982352., 7031328., 7055104.,
      7052856., 7075728., 7123536., 7146496., 7194568., 7217616., 7265952.,
      7289088., 6760496., 6780640., 6823552., 6843776., 6886928., 6907232.,
      6950624., 6971008., 4100560., 4112416., 4137472., 4149376., 4174576.,
      4186528., 4211872., 4223872., 4695881., 4717602., 4758802., 4780600.,
      4822031., 4843906., 4885568., 4907520., 7065149., 7099738., 7163586.,
      7198296., 7262507., 7297338., 7361912., 7396864., 6501837., 6534778.,
      6596978., 6630040., 6692603., 6725786., 6788712., 6822016., 5361298.,
      5389340., 5443960., 5472112., 5527062., 5555324., 5610604., 5638976.,
      2690350., 2705860., 2736568., 2752144., 2783050., 2798692., 2829796.,
      2845504., 5763561., 5782370., 5820658., 5839544., 5878063., 5897026.,
      5935776., 5954816., 9116253., 9146778., 9206562., 9237208., 9297355.,
      9328122., 9388632., 9419520., 9316845., 9347770., 9407954., 9439000.,
      9499547., 9530714., 9591624., 9622912., 7919442., 7947420., 8001976.,
      8030064., 8084950., 8113148., 8168364., 8196672., 4061806., 4077892.,
      4109176., 4125328., 4156810., 4173028., 4204708., 4220992., 2252445.,
      2264954., 2288682., 2301240., 2325115., 2337722., 2361744., 2374400.,
      3520161., 3540434., 3577690., 3598040., 3635527., 3655954., 3693672.,
      3714176., 3542129., 3562098., 3599050., 3619096., 3656279., 3676402.,
      3713816., 3734016., 3269370., 3286828., 3319864., 3337392., 3370638.,
      3388236., 3421692., 3439360., 1848518., 1858100., 1876664., 1886288.,
      1904978., 1914644., 1933460., 1943168.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296., 9044149., 9075018., 9135146.,
      9166136., 9226627., 9257738., 9318592., 9349824., 8547909., 8578666.,
      8638682., 8669560., 8729939., 8760938., 8821680., 8852800., 5921493.,
      5951882., 6011530., 6042040., 6102051., 6132682., 6193056., 6223808.,
      5660773., 5689002., 5746490., 5774840., 5832691., 5861162., 5919376.,
      5947968., 8952117., 8989258., 9055658., 9092920., 9159683., 9197066.,
      9264192., 9301696., 8073413., 8108906., 8173658., 8209272., 8274387.,
      8310122., 8375600., 8411456., 7348053., 7375498., 7432202., 7459768.,
      7516835., 7544522., 7601952., 7629760., 7675621., 7703466., 7760570.,
      7788536., 7846003., 7874090., 7931920., 7960128.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x16x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3003832., 3016112., 3028392., 3040672., 3067248., 3079584., 3091920.,
      3104256., 3131112., 3143504., 3155896., 3168288., 3195424., 3207872.,
      3220320., 3232768., 4526488., 4545904., 4565320., 4584736., 4625264.,
      4644768., 4664272., 4683776., 4724744., 4744336., 4763928., 4783520.,
      4824928., 4844608., 4864288., 4883968., 4620056., 4639856., 4659656.,
      4679456., 4720368., 4740256., 4760144., 4780032., 4821384., 4841360.,
      4861336., 4881312., 4923104., 4943168., 4963232., 4983296., 4550576.,
      4569696., 4588816., 4607936., 4646400., 4665600., 4684800., 4704000.,
      4742864., 4762144., 4781424., 4800704., 4839968., 4859328., 4878688.,
      4898048., 2761040., 2772896., 2784752., 2796608., 2819456., 2831360.,
      2843264., 2855168., 2878256., 2890208., 2902160., 2914112., 2937440.,
      2949440., 2961440., 2973440., 4630201., 4647570., 4664939., 4682308.,
      4719614., 4737060., 4754506., 4771952., 4809643., 4827166., 4844689.,
      4862212., 4900288., 4917888., 4935488., 4953088., 7053405., 7081082.,
      7108759., 7136436., 7193326., 7221124., 7248922., 7276720., 7334215.,
      7362134., 7390053., 7417972., 7476072., 7504112., 7532152., 7560192.,
      7471085., 7499674., 7528263., 7556852., 7614654., 7643364., 7672074.,
      7700784., 7759191., 7788022., 7816853., 7845684., 7904696., 7933648.,
      7962600., 7991552., 7344026., 7371556., 7399086., 7426616., 7481080.,
      7508720., 7536360., 7564000., 7619014., 7646764., 7674514., 7702264.,
      7757828., 7785688., 7813548., 7841408., 4251590., 4268636., 4285682.,
      4302728., 4334744., 4351856., 4368968., 4386080., 4418426., 4435604.,
      4452782., 4469960., 4502636., 4519880., 4537124., 4554368., 4947289.,
      4967378., 4987467., 5007556., 5047582., 5067748., 5087914., 5108080.,
      5148491., 5168734., 5188977., 5209220., 5250016., 5270336., 5290656.,
      5310976., 7095421., 7126202., 7156983., 7187764., 7247758., 7278660.,
      7309562., 7340464., 7401063., 7432086., 7463109., 7494132., 7555336.,
      7586480., 7617624., 7648768., 7035917., 7065562., 7095207., 7124852.,
      7183710., 7213476., 7243242., 7273008., 7332471., 7362358., 7392245.,
      7422132., 7482200., 7512208., 7542216., 7572224., 6849882., 6878372.,
      6906862., 6935352., 6990776., 7019376., 7047976., 7076576., 7132550.,
      7161260., 7189970., 7218680., 7275204., 7304024., 7332844., 7361664.,
      4044806., 4062428., 4080050., 4097672., 4130264., 4147952., 4165640.,
      4183328., 4216250., 4234004., 4251758., 4269512., 4302764., 4320584.,
      4338404., 4356224., 3626333., 3639098., 3651863., 3664628., 3689542.,
      3702356., 3715170., 3727984., 3753143., 3766006., 3778869., 3791732.,
      3817136., 3830048., 3842960., 3855872., 4741905., 4761410., 4780915.,
      4800420., 4837430., 4857012., 4876594., 4896176., 4933571., 4953230.,
      4972889., 4992548., 5030328., 5050064., 5069800., 5089536., 4212193.,
      4230882., 4249571., 4268260., 4304454., 4323220., 4341986., 4360752.,
      4397331., 4416174., 4435017., 4453860., 4490824., 4509744., 4528664.,
      4547584., 4082114., 4100084., 4118054., 4136024., 4170232., 4188272.,
      4206312., 4224352., 4258910., 4277020., 4295130., 4313240., 4348148.,
      4366328., 4384508., 4402688., 2174494., 2185612., 2196730., 2207848.,
      2227672., 2238832., 2249992., 2261152., 2281186., 2292388., 2303590.,
      2314792., 2335036., 2346280., 2357524., 2368768., 3907000., 3921328.,
      3935656., 3949984., 3978608., 3992992., 4007376., 4021760., 4050664.,
      4065104., 4079544., 4093984., 4123168., 4137664., 4152160., 4166656.,
      5691800., 5713264., 5734728., 5756192., 5798768., 5820320., 5841872.,
      5863424., 5906440., 5928080., 5949720., 5971360., 6014816., 6036544.,
      6058272., 6080000., 5120792., 5141616., 5162440., 5183264., 5225200.,
      5246112., 5267024., 5287936., 5330312., 5351312., 5372312., 5393312.,
      5436128., 5457216., 5478304., 5499392., 4550576., 4569696., 4588816.,
      4607936., 4646400., 4665600., 4684800., 4704000., 4742864., 4762144.,
      4781424., 4800704., 4839968., 4859328., 4878688., 4898048., 2564432.,
      2576288., 2588144., 2600000., 2622848., 2634752., 2646656., 2658560.,
      2681648., 2693600., 2705552., 2717504., 2740832., 2752832., 2764832.,
      2776832., 5654841., 5676946., 5699051., 5721156., 5763198., 5785380.,
      5807562., 5829744., 5872171., 5894430., 5916689., 5938948., 5981760.,
      6004096., 6026432., 6048768., 7862493., 7896442., 7930391., 7964340.,
      8027502., 8061572., 8095642., 8129712., 8193479., 8227670., 8261861.,
      8296052., 8360424., 8394736., 8429048., 8463360., 7812205., 7846042.,
      7879879., 7913716., 7976766., 8010724., 8044682., 8078640., 8142295.,
      8176374., 8210453., 8244532., 8308792., 8342992., 8377192., 8411392.,
      7382682., 7414052., 7445422., 7476792., 7535096., 7566576., 7598056.,
      7629536., 7688390., 7719980., 7751570., 7783160., 7842564., 7874264.,
      7905964., 7937664., 4161734., 4181084., 4200434., 4219784., 4254104.,
      4273520., 4292936., 4312352., 4347002., 4366484., 4385966., 4405448.,
      4440428., 4459976., 4479524., 4499072., 4631001., 4650194., 4669387.,
      4688580., 4727710., 4746980., 4766250., 4785520., 4825035., 4844382.,
      4863729., 4883076., 4922976., 4942400., 4961824., 4981248., 6101245.,
      6129082., 6156919., 6184756., 6241806., 6269764., 6297722., 6325680.,
      6383335., 6411414., 6439493., 6467572., 6525832., 6554032., 6582232.,
      6610432., 5835917., 5861594., 5887271., 5912948., 5967838., 5993636.,
      6019434., 6045232., 6100727., 6126646., 6152565., 6178484., 6234584.,
      6260624., 6286664., 6312704., 5338202., 5360292., 5382382., 5404472.,
      5453496., 5475696., 5497896., 5520096., 5569670., 5591980., 5614290.,
      5636600., 5686724., 5709144., 5731564., 5753984., 3064070., 3077852.,
      3091634., 3105416., 3134168., 3148016., 3161864., 3175712., 3204794.,
      3218708., 3232622., 3246536., 3275948., 3289928., 3303908., 3317888.,
      3127261., 3140666., 3154071., 3167476., 3193030., 3206484., 3219938.,
      3233392., 3259191., 3272694., 3286197., 3299700., 3325744., 3339296.,
      3352848., 3366400., 4353425., 4373570., 4393715., 4413860., 4451510.,
      4471732., 4491954., 4512176., 4550211., 4570510., 4590809., 4611108.,
      4649528., 4669904., 4690280., 4710656., 4413537., 4432866., 4452195.,
      4471524., 4508358., 4527764., 4547170., 4566576., 4603795., 4623278.,
      4642761., 4662244., 4699848., 4719408., 4738968., 4758528., 4312258.,
      4328948., 4345638., 4362328., 4395256., 4412016., 4428776., 4445536.,
      4478814., 4495644., 4512474., 4529304., 4562932., 4579832., 4596732.,
      4613632., 2376478., 2386828., 2397178., 2407528., 2426584., 2436976.,
      2447368., 2457760., 2477026., 2487460., 2497894., 2508328., 2527804.,
      2538280., 2548756., 2559232., 3579832., 3594672., 3609512., 3624352.,
      3653488., 3668384., 3683280., 3698176., 3727592., 3742544., 3757496.,
      3772448., 3802144., 3817152., 3832160., 3847168., 5317016., 5340528.,
      5364040., 5387552., 5432176., 5455776., 5479376., 5502976., 5548040.,
      5571728., 5595416., 5619104., 5664608., 5688384., 5712160., 5735936.,
      5335832., 5358704., 5381576., 5404448., 5448432., 5471392., 5494352.,
      5517312., 5561736., 5584784., 5607832., 5630880., 5675744., 5698880.,
      5722016., 5745152., 5051312., 5071456., 5091600., 5111744., 5151232.,
      5171456., 5191680., 5211904., 5251792., 5272096., 5292400., 5312704.,
      5352992., 5373376., 5393760., 5414144., 2957648., 2969504., 2981360.,
      2993216., 3016064., 3027968., 3039872., 3051776., 3074864., 3086816.,
      3098768., 3110720., 3134048., 3146048., 3158048., 3170048., 5584825.,
      5606546., 5628267., 5649988., 5691646., 5713444., 5735242., 5757040.,
      5799083., 5820958., 5842833., 5864708., 5907136., 5929088., 5951040.,
      5972992., 8559453., 8594042., 8628631., 8663220., 8727022., 8761732.,
      8796442., 8831152., 8895559., 8930390., 8965221., 9000052., 9065064.,
      9100016., 9134968., 9169920., 7753965., 7786906., 7819847., 7852788.,
      7914942., 7948004., 7981066., 8014128., 8076887., 8110070., 8143253.,
      8176436., 8239800., 8273104., 8306408., 8339712., 6521242., 6549284.,
      6577326., 6605368., 6660344., 6688496., 6716648., 6744800., 6800326.,
      6828588., 6856850., 6885112., 6941188., 6969560., 6997932., 7026304.,
      3574214., 3589724., 3605234., 3620744., 3651224., 3666800., 3682376.,
      3697952., 3728762., 3744404., 3760046., 3775688., 3806828., 3822536.,
      3838244., 3853952., 5150809., 5169618., 5188427., 5207236., 5245982.,
      5264868., 5283754., 5302640., 5341771., 5360734., 5379697., 5398660.,
      5438176., 5457216., 5476256., 5495296., 7930749., 7961274., 7991799.,
      8022324., 8082062., 8112708., 8143354., 8174000., 8234343., 8265110.,
      8295877., 8326644., 8387592., 8418480., 8449368., 8480256., 8126733.,
      8157658., 8188583., 8219508., 8279646., 8310692., 8341738., 8372784.,
      8433527., 8464694., 8495861., 8527028., 8588376., 8619664., 8650952.,
      8682240., 7000922., 7028900., 7056878., 7084856., 7139768., 7167856.,
      7195944., 7224032., 7279494., 7307692., 7335890., 7364088., 7420100.,
      7448408., 7476716., 7505024., 3465734., 3481820., 3497906., 3513992.,
      3545048., 3561200., 3577352., 3593504., 3624890., 3641108., 3657326.,
      3673544., 3705260., 3721544., 3737828., 3754112., 2790493., 2803002.,
      2815511., 2828020., 2852678., 2865236., 2877794., 2890352., 2915255.,
      2927862., 2940469., 2953076., 2978224., 2990880., 3003536., 3016192.,
      4079121., 4099394., 4119667., 4139940., 4177718., 4198068., 4218418.,
      4238768., 4276931., 4297358., 4317785., 4338212., 4376760., 4397264.,
      4417768., 4438272., 3861217., 3881186., 3901155., 3921124., 3958598.,
      3978644., 3998690., 4018736., 4056595., 4076718., 4096841., 4116964.,
      4155208., 4175408., 4195608., 4215808., 3315650., 3333108., 3350566.,
      3368024., 3401720., 3419248., 3436776., 3454304., 3488350., 3505948.,
      3523546., 3541144., 3575540., 3593208., 3610876., 3628544., 1595422.,
      1605004., 1614586., 1624168., 1642456., 1652080., 1661704., 1671328.,
      1689826., 1699492., 1709158., 1718824., 1737532., 1747240., 1756948.,
      1766656.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x16x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056., 7872213., 7903082., 7933951., 7964820., 8024902., 8055892.,
      8086882., 8117872., 8178559., 8209670., 8240781., 8271892., 8333184.,
      8364416., 8395648., 8426880., 7461477., 7492234., 7522991., 7553748.,
      7613718., 7644596., 7675474., 7706352., 7766927., 7797926., 7828925.,
      7859924., 7921104., 7952224., 7983344., 8014464., 7378165., 7408554.,
      7438943., 7469332., 7528934., 7559444., 7589954., 7620464., 7680671.,
      7711302., 7741933., 7772564., 7833376., 7864128., 7894880., 7925632.,
      6391941., 6420170., 6448399., 6476628., 6534070., 6562420., 6590770.,
      6619120., 6677167., 6705638., 6734109., 6762580., 6821232., 6849824.,
      6878416., 6907008., 8664917., 8702058., 8739199., 8776340., 8842694.,
      8879956., 8917218., 8954480., 9021439., 9058822., 9096205., 9133588.,
      9201152., 9238656., 9276160., 9313664., 8277221., 8312714., 8348207.,
      8383700., 8448406., 8484020., 8519634., 8555248., 8620559., 8656294.,
      8692029., 8727764., 8793680., 8829536., 8865392., 8901248., 6498677.,
      6526122., 6553567., 6581012., 6637670., 6665236., 6692802., 6720368.,
      6777631., 6805318., 6833005., 6860692., 6918560., 6946368., 6974176.,
      7001984., 6686469., 6714314., 6742159., 6770004., 6827062., 6855028.,
      6882994., 6910960., 6968623., 6996710., 7024797., 7052884., 7111152.,
      7139360., 7167568., 7195776.};
  const std::array<int, 4> in_shape = {{3, 16, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      236621.,  377531.,  403095.,  258769.,  510587.,  798721.,  828245.,
      522599.,  801647.,  1241581., 1271105., 795179.,  866355.,  1332155.,
      1356575., 842695.,  350637.,  526581.,  535425.,  324009.,  1361171.,
      2103101., 2128665., 1330399., 1820357., 2791591., 2821115., 1749209.,
      2111417., 3234451., 3263975., 2021789., 1953105., 2980505., 3004925.,
      1853845., 753207.,  1123551., 1132395., 681219.,  2485721., 3828671.,
      3854235., 2402029., 3130127., 4784461., 4813985., 2975819., 3421187.,
      5227321., 5256845., 3248399., 3039855., 4628855., 4653275., 2864995.,
      1155777., 1720521., 1729365., 1038429.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      798721.,  828245.,  1241581., 1271105., 2791591., 2821115.,
      3234451., 3263975., 4784461., 4813985., 5227321., 5256845.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      470841.,   473242.,   751135.,   755062.,   801955.,  806190.,  514745.,
      517538.,   1015091.,  1021174.,  1587641.,  1597442., 1646205., 1656490.,
      1038499.,  1045198.,  1592591.,  1603294.,  2466101., 2483162., 2524665.,
      2542210.,  1579039.,  1590358.,  1719305.,  1732710., 2643025., 2664310.,
      2691425.,  2713150.,  1671425.,  1685390.,  691971.,  701274.,  1038411.,
      1053162.,  1055835.,  1070850.,  638379.,   648018.,  2706711., 2722342.,
      4181485.,  4206202.,  4232305.,  4257330.,  2644775., 2660798., 3613841.,
      3640714.,  5540711.,  5583182.,  5599275.,  5642230., 3470929., 3498418.,
      4191341.,  4222834.,  6419171.,  6468902.,  6477735., 6527950., 4011469.,
      4043578.,  3873905.,  3906210.,  5910025.,  5961010., 5958425., 6009850.,
      3674825.,  3707690.,  1485771.,  1506414.,  2214531., 2247102., 2231955.,
      2264790.,  1341459.,  1362438.,  4942581.,  4971442., 7611835., 7657342.,
      7662655.,  7708470.,  4774805.,  4804058.,  6212591., 6260254., 9493781.,
      9568922.,  9552345.,  9627970.,  5903359.,  5951638., 6790091., 6842374.,
      10372241., 10454642., 10430805., 10513690., 6443899., 6496798., 6028505.,
      6079710.,  9177025.,  9257710.,  9225425.,  9306550., 5678225., 5729990.,
      2279571.,  2311554.,  3390651.,  3441042.,  3408075., 3458730., 2044539.,
      2076858.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1587641., 1597442., 1646205.,  1656490.,  2466101.,  2483162.,
      2524665., 2542210., 5540711.,  5583182.,  5599275.,  5642230.,
      6419171., 6468902., 6477735.,  6527950.,  9493781.,  9568922.,
      9552345., 9627970., 10372241., 10454642., 10430805., 10513690.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      939281.,   941682.,   944083.,   946484.,   1498343.,  1502270.,
      1506197.,  1510124.,  1599675.,  1603910.,  1608145.,  1612380.,
      1026697.,  1029490.,  1032283.,  1035076.,  2024099.,  2030182.,
      2036265.,  2042348.,  3165481.,  3175282.,  3185083.,  3194884.,
      3282125.,  3292410.,  3302695.,  3312980.,  2070299.,  2076998.,
      2083697.,  2090396.,  3174479.,  3185182.,  3195885.,  3206588.,
      4915141.,  4932202.,  4949263.,  4966324.,  5031785.,  5049330.,
      5066875.,  5084420.,  3146759.,  3158078.,  3169397.,  3180716.,
      3425205.,  3438610.,  3452015.,  3465420.,  5264765.,  5286050.,
      5307335.,  5328620.,  5361125.,  5382850.,  5404575.,  5426300.,
      3328885.,  3342850.,  3356815.,  3370780.,  1374639.,  1383942.,
      1393245.,  1402548.,  2062071.,  2076822.,  2091573.,  2106324.,
      2096655.,  2111670.,  2126685.,  2141700.,  1267119.,  1276758.,
      1286397.,  1296036.,  5397791.,  5413422.,  5429053.,  5444684.,
      8338253.,  8362970.,  8387687.,  8412404.,  8439585.,  8464610.,
      8489635.,  8514660.,  5273527.,  5289550.,  5305573.,  5321596.,
      7200809.,  7227682.,  7254555.,  7281428.,  11038951., 11081422.,
      11123893., 11166364., 11155595., 11198550., 11241505., 11284460.,
      6914369.,  6941858.,  6969347.,  6996836.,  8351189.,  8382682.,
      8414175.,  8445668.,  12788611., 12838342., 12888073., 12937804.,
      12905255., 12955470., 13005685., 13055900., 7990829.,  8022938.,
      8055047.,  8087156.,  5206705.,  5232866.,  5259027.,  5285188.,
      7683305.,  7724050.,  7764795.,  7805540.,  7416145.,  7456306.,
      7496467.,  7536628.,  4542769.,  4568466.,  4594163.,  4619860.,
      1523443.,  1537942.,  1552441.,  1566940.,  2112971.,  2135302.,
      2157633.,  2179964.,  1964259.,  1985830.,  2007401.,  2028972.,
      1149491.,  1163302.,  1177113.,  1190924.,  1401645.,  1405418.,
      1409191.,  1412964.,  2207667.,  2213750.,  2219833.,  2225916.,
      2308999.,  2315390.,  2321781.,  2328172.,  1467109.,  1471274.,
      1475439.,  1479604.,  2560943.,  2569182.,  2577421.,  2585660.,
      3981989.,  3995178.,  4008367.,  4021556.,  4098633.,  4112306.,
      4125979.,  4139652.,  2572647.,  2581502.,  2590357.,  2599212.,
      3711323.,  3724182.,  3737041.,  3749900.,  5731649.,  5752098.,
      5772547.,  5792996.,  5848293.,  5869226.,  5890159.,  5911092.,
      3649107.,  3662582.,  3676057.,  3689532.,  3870125.,  3885490.,
      3900855.,  3916220.,  5939285.,  5963650.,  5988015.,  6012380.,
      6035645.,  6060450.,  6085255.,  6110060.,  3742445.,  3758370.,
      3774295.,  3790220.,  1538103.,  1548582.,  1559061.,  1569540.,
      2304159.,  2320758.,  2337357.,  2353956.,  2338743.,  2355606.,
      2372469.,  2389332.,  1411767.,  1422582.,  1433397.,  1444212.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3165481.,  3175282.,  3185083.,  3194884.,  3282125.,  3292410.,
      3302695.,  3312980.,  4915141.,  4932202.,  4949263.,  4966324.,
      5031785.,  5049330.,  5066875.,  5084420.,  11038951., 11081422.,
      11123893., 11166364., 11155595., 11198550., 11241505., 11284460.,
      12788611., 12838342., 12888073., 12937804., 12905255., 12955470.,
      13005685., 13055900., 3981989.,  3995178.,  4008367.,  4021556.,
      4098633.,  4112306.,  4125979.,  4139652.,  5731649.,  5752098.,
      5772547.,  5792996.,  5848293.,  5869226.,  5890159.,  5911092.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      933401.,  946484.,   1489565.,  1510124.,  1591205.,  1612380.,  1021601.,
      1035076., 2020557.,  2042348.,  3160641.,  3194884.,  3277769.,  3312980.,
      2067989., 2090396.,  3175557.,  3206588.,  4917561.,  4966324.,  5034689.,
      5084420., 3149069.,  3180716.,  3430630.,  3465420.,  5273950.,  5328620.,
      5370750., 5426300.,  3335430.,  3370780.,  1381002.,  1402548.,  2072466.,
      2106324., 2107314.,  2141700.,  1274154.,  1296036.,  5405141.,  5444684.,
      8350265., 8412404.,  8451905.,  8514660.,  5281661.,  5321596.,  7218057.,
      7281428., 11066781., 11166364., 11183909., 11284460., 6932849.,  6996836.,
      8373057., 8445668.,  12823701., 12937804., 12940829., 13055900., 8013929.,
      8087156., 5224886.,  5285188.,  7711950.,  7805540.,  7444206.,  7536628.,
      4561046., 4619860.,  1535002.,  1566940.,  2130946.,  2179964.,  1981474.,
      2028972., 1160698.,  1190924.,  1397137.,  1412964.,  2201045.,  2225916.,
      2302685., 2328172.,  1463385.,  1479604.,  2559557.,  2585660.,  3980537.,
      4021556., 4097665.,  4139652.,  2572493.,  2599212.,  3714557.,  3749900.,
      5737457., 5792996.,  5854585.,  5911092.,  3653573.,  3689532.,  3877510.,
      3916220., 5951550.,  6012380.,  6048350.,  6110060.,  3750950.,  3790220.,
      1545642., 1569540.,  2316402.,  2353956.,  2351250.,  2389332.,  1419978.,
      1444212.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3160641.,  3194884.,  3277769.,  3312980.,  4917561.,  4966324.,
      5034689.,  5084420.,  11066781., 11166364., 11183909., 11284460.,
      12823701., 12937804., 12940829., 13055900., 3980537.,  4021556.,
      4097665.,  4139652.,  5737457.,  5792996.,  5854585.,  5911092.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1862049.,  1866802.,  1888166.,  1892968.,  2971353.,  2979130.,
      3012394.,  3020248.,  3174017.,  3182410.,  3216290.,  3224760.,
      2037665.,  2043202.,  2064566.,  2070152.,  4029025.,  4041114.,
      4072530.,  4084696.,  6301801.,  6321282.,  6370166.,  6389768.,
      6535089.,  6555538.,  6605390.,  6625960.,  4122657.,  4135978.,
      4167394.,  4180792.,  6329785.,  6351114.,  6391770.,  6413176.,
      9801121.,  9835122.,  9898526.,  9932648.,  10034409., 10069378.,
      10133750., 10168840., 6275577.,  6298138.,  6338794.,  6361432.,
      5522776.,  5546444.,  5586142.,  5609880.,  8360160.,  8397500.,
      8459150.,  8496600.,  8349616.,  8387324.,  8449342.,  8487160.,
      5177144.,  5201420.,  5240606.,  5264952.,  1972368.,  1987860.,
      2009274.,  2024808.,  2871336.,  2895652.,  2928746.,  2953128.,
      2827352.,  2851684.,  2884794.,  2909192.,  1694000.,  1709652.,
      1730554.,  1746248.,  2324413.,  2330538.,  2353274.,  2359448.,
      3680677.,  3690610.,  3726030.,  3736040.,  3883341.,  3893890.,
      3929926.,  3940552.,  2478077.,  2484986.,  2507722.,  2514680.,
      4565869.,  4580114.,  4613686.,  4628008.,  7118309.,  7141178.,
      7193450.,  7216440.,  7351597.,  7375434.,  7428674.,  7452632.,
      4625005.,  4640482.,  4674054.,  4689608.,  6866629.,  6890114.,
      6932926.,  6956488.,  10617629., 10655018., 10721810., 10759320.,
      10850917., 10889274., 10957034., 10995512., 6777925.,  6802642.,
      6845454.,  6870248.,  4770640.,  4793196.,  4831782.,  4854408.,
      7094200.,  7129500.,  7189110.,  7224520.,  6923400.,  6958556.,
      7018022.,  7053288.,  4282544.,  4305196.,  4342758.,  4365480.,
      1479448.,  1493044.,  1512562.,  1526200.,  2074064.,  2095108.,
      2124930.,  2146040.,  1959936.,  1980484.,  2009810.,  2030424.,
      1161272.,  1174516.,  1193010.,  1206296.,  2786777.,  2794274.,
      2818382.,  2825928.,  4390001.,  4402090.,  4439666.,  4451832.,
      4592665.,  4605370.,  4643562.,  4656344.,  2918489.,  2926770.,
      2950878.,  2959208.,  5102713.,  5119114.,  5154842.,  5171320.,
      7934817.,  7961074.,  8016734.,  8043112.,  8168105.,  8195330.,
      8251958.,  8279304.,  5127353.,  5144986.,  5180714.,  5198424.,
      7403473.,  7429114.,  7474082.,  7499800.,  11434137., 11474914.,
      11545094., 11585992., 11667425., 11709170., 11780318., 11822184.,
      7280273.,  7307146.,  7352114.,  7379064.,  4133192.,  4154636.,
      4192110.,  4213624.,  6033040.,  6066300.,  6123870.,  6157240.,
      5744992.,  5777596.,  5834510.,  5867224.,  3545640.,  3566668.,
      3602606.,  3623704.,  1101216.,  1112916.,  1130538.,  1142280.,
      1481592.,  1499364.,  1525914.,  1543752.,  1340328.,  1357092.,
      1382634.,  1399464.,  786240.,   797076.,   813162.,   824040.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6301801.,  6321282.,  6370166.,  6389768.,  6535089.,  6555538.,
      6605390.,  6625960.,  9801121.,  9835122.,  9898526.,  9932648.,
      10034409., 10069378., 10133750., 10168840., 7118309.,  7141178.,
      7193450.,  7216440.,  7351597.,  7375434.,  7428674.,  7452632.,
      10617629., 10655018., 10721810., 10759320., 10850917., 10889274.,
      10957034., 10995512., 7934817.,  7961074.,  8016734.,  8043112.,
      8168105.,  8195330.,  8251958.,  8279304.,  11434137., 11474914.,
      11545094., 11585992., 11667425., 11709170., 11780318., 11822184.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1400497.,  1405250.,  1410003.,  1414756.,  1433738.,  1438540.,
      1443342.,  1448144.,  2194769.,  2202546.,  2210323.,  2218100.,
      2247590.,  2255444.,  2263298.,  2271152.,  2366009.,  2374402.,
      2382795.,  2391188.,  2421294.,  2429764.,  2438234.,  2446704.,
      1507233.,  1512770.,  1518307.,  1523844.,  1543066.,  1548652.,
      1554238.,  1559824.,  3453833.,  3465922.,  3478011.,  3490100.,
      3521822.,  3533988.,  3546154.,  3558320.,  5341881.,  5361362.,
      5380843.,  5400324.,  5449306.,  5468908.,  5488510.,  5508112.,
      5574017.,  5594466.,  5614915.,  5635364.,  5685314.,  5705884.,
      5726454.,  5747024.,  3519033.,  3532354.,  3545675.,  3558996.,
      3590510.,  3603908.,  3617306.,  3630704.,  5772833.,  5794162.,
      5815491.,  5836820.,  5877782.,  5899188.,  5920594.,  5942000.,
      8823921.,  8857922.,  8891923.,  8925924.,  8989426.,  9023548.,
      9057670.,  9091792.,  9056057.,  9091026.,  9125995.,  9160964.,
      9225434.,  9260524.,  9295614.,  9330704.,  5665233.,  5687794.,
      5710355.,  5732916.,  5773670.,  5796308.,  5818946.,  5841584.,
      5416508.,  5440176.,  5463844.,  5487512.,  5527810.,  5551548.,
      5575286.,  5599024.,  8161252.,  8198592.,  8235932.,  8273272.,
      8335570.,  8373020.,  8410470.,  8447920.,  8213524.,  8251232.,
      8288940.,  8326648.,  8389314.,  8427132.,  8464950.,  8502768.,
      5169052.,  5193328.,  5217604.,  5241880.,  5281570.,  5305916.,
      5330262.,  5354608.,  3919004.,  3934496.,  3949988.,  3965480.,
      3991750.,  4007284.,  4022818.,  4038352.,  5699924.,  5724240.,
      5748556.,  5772872.,  5813654.,  5838036.,  5862418.,  5886800.,
      5603748.,  5628080.,  5652412.,  5676744.,  5717542.,  5741940.,
      5766338.,  5790736.,  3372348.,  3388000.,  3403652.,  3419304.,
      3445414.,  3461108.,  3476802.,  3492496.,  1793421.,  1799546.,
      1805671.,  1811796.,  1832150.,  1838324.,  1844498.,  1850672.,
      2794109.,  2804042.,  2813975.,  2823908.,  2855554.,  2865564.,
      2875574.,  2885584.,  2965349.,  2975898.,  2986447.,  2996996.,
      3029258.,  3039884.,  3050510.,  3061136.,  1884925.,  1891834.,
      1898743.,  1905652.,  1926246.,  1933204.,  1940162.,  1947120.,
      3994933.,  4009178.,  4023423.,  4037668.,  4071546.,  4085868.,
      4100190.,  4114512.,  6154357.,  6177226.,  6200095.,  6222964.,
      6275334.,  6298324.,  6321314.,  6344304.,  6386493.,  6410330.,
      6434167.,  6458004.,  6511342.,  6535300.,  6559258.,  6583216.,
      4019813.,  4035290.,  4050767.,  4066244.,  4099914.,  4115468.,
      4131022.,  4146576.,  6313933.,  6337418.,  6360903.,  6384388.,
      6427506.,  6451068.,  6474630.,  6498192.,  9636397.,  9673786.,
      9711175.,  9748564.,  9815454.,  9852964.,  9890474.,  9927984.,
      9868533.,  9906890.,  9945247.,  9983604.,  10051462., 10089940.,
      10128418., 10166896., 6166013.,  6190730.,  6215447.,  6240164.,
      6283074.,  6307868.,  6332662.,  6357456.,  5056132.,  5078688.,
      5101244.,  5123800.,  5162986.,  5185612.,  5208238.,  5230864.,
      7593356.,  7628656.,  7663956.,  7699256.,  7759514.,  7794924.,
      7830334.,  7865744.,  7587772.,  7622928.,  7658084.,  7693240.,
      7753354.,  7788620.,  7823886.,  7859152.,  4815076.,  4837728.,
      4860380.,  4883032.,  4921098.,  4943820.,  4966542.,  4989264.,
      2906388.,  2919984.,  2933580.,  2947176.,  2971550.,  2985188.,
      2998826.,  3012464.,  4079980.,  4101024.,  4122068.,  4143112.,
      4180622.,  4201732.,  4222842.,  4243952.,  3844028.,  3864576.,
      3885124.,  3905672.,  3942686.,  3963300.,  3983914.,  4004528.,
      2309300.,  2322544.,  2335788.,  2349032.,  2372734.,  2386020.,
      2399306.,  2412592.,  2186345.,  2193842.,  2201339.,  2208836.,
      2230562.,  2238108.,  2245654.,  2253200.,  3393449.,  3405538.,
      3417627.,  3429716.,  3463518.,  3475684.,  3487850.,  3500016.,
      3564689.,  3577394.,  3590099.,  3602804.,  3637222.,  3650004.,
      3662786.,  3675568.,  2262617.,  2270898.,  2279179.,  2287460.,
      2309426.,  2317756.,  2326086.,  2334416.,  4536033.,  4552434.,
      4568835.,  4585236.,  4621270.,  4637748.,  4654226.,  4670704.,
      6966833.,  6993090.,  7019347.,  7045604.,  7101362.,  7127740.,
      7154118.,  7180496.,  7198969.,  7226194.,  7253419.,  7280644.,
      7337370.,  7364716.,  7392062.,  7419408.,  4520593.,  4538226.,
      4555859.,  4573492.,  4609318.,  4627028.,  4644738.,  4662448.,
      6855033.,  6880674.,  6906315.,  6931956.,  6977230.,  7002948.,
      7028666.,  7054384.,  10448873., 10489650., 10530427., 10571204.,
      10641482., 10682380., 10723278., 10764176., 10681009., 10722754.,
      10764499., 10806244., 10877490., 10919356., 10961222., 11003088.,
      6666793.,  6693666.,  6720539.,  6747412.,  6792478.,  6819428.,
      6846378.,  6873328.,  4925132.,  4946576.,  4968020.,  4989464.,
      5027538.,  5049052.,  5070566.,  5092080.,  7435060.,  7468320.,
      7501580.,  7534840.,  7593058.,  7626428.,  7659798.,  7693168.,
      7457636.,  7490240.,  7522844.,  7555448.,  7613010.,  7645724.,
      7678438.,  7711152.,  4776492.,  4797520.,  4818548.,  4839576.,
      4876018.,  4897116.,  4918214.,  4939312.,  2123148.,  2134848.,
      2146548.,  2158248.,  2180726.,  2192468.,  2204210.,  2215952.,
      2869636.,  2887408.,  2905180.,  2922952.,  2957190.,  2975028.,
      2992866.,  3010704.,  2579924.,  2596688.,  2613452.,  2630216.,
      2663446.,  2680276.,  2697106.,  2713936.,  1561644.,  1572480.,
      1583316.,  1594152.,  1615446.,  1626324.,  1637202.,  1648080.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5341881.,  5361362.,  5380843.,  5400324.,  5449306.,  5468908.,
      5488510.,  5508112.,  5574017.,  5594466.,  5614915.,  5635364.,
      5685314.,  5705884.,  5726454.,  5747024.,  8823921.,  8857922.,
      8891923.,  8925924.,  8989426.,  9023548.,  9057670.,  9091792.,
      9056057.,  9091026.,  9125995.,  9160964.,  9225434.,  9260524.,
      9295614.,  9330704.,  6154357.,  6177226.,  6200095.,  6222964.,
      6275334.,  6298324.,  6321314.,  6344304.,  6386493.,  6410330.,
      6434167.,  6458004.,  6511342.,  6535300.,  6559258.,  6583216.,
      9636397.,  9673786.,  9711175.,  9748564.,  9815454.,  9852964.,
      9890474.,  9927984.,  9868533.,  9906890.,  9945247.,  9983604.,
      10051462., 10089940., 10128418., 10166896., 6966833.,  6993090.,
      7019347.,  7045604.,  7101362.,  7127740.,  7154118.,  7180496.,
      7198969.,  7226194.,  7253419.,  7280644.,  7337370.,  7364716.,
      7392062.,  7419408.,  10448873., 10489650., 10530427., 10571204.,
      10641482., 10682380., 10723278., 10764176., 10681009., 10722754.,
      10764499., 10806244., 10877490., 10919356., 10961222., 11003088.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3707585., 3733604., 3759721., 3785936., 5917373., 5958260., 5999301.,
      6040496., 6322701., 6364820., 6407093., 6449520., 4059601., 4086404.,
      4113305., 4140304., 4834781., 4870964., 4907301., 4943792., 7032041.,
      7087364., 7142929., 7198736., 6730617., 6785828., 6841281., 6896976.,
      3829805., 3863636., 3897621., 3931760., 4920461., 4960788., 5001269.,
      5041904., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 4479965., 4517940., 4556069., 4594352., 4309662.,
      4343704., 4377886., 4412208., 6568870., 6620536., 6672422., 6724528.,
      6703942., 6754808., 6805894., 6857200., 4243134., 4274200., 4305406.,
      4336752., 1720914., 1739304., 1757778., 1776336., 2551434., 2580040.,
      2608778., 2637648., 2576618., 2605768., 2635050., 2664464., 1572914.,
      1591464., 1610098., 1628816., 4632313., 4661076., 4689937., 4718896.,
      7336021., 7381220., 7426573., 7472080., 7741349., 7787780., 7834365.,
      7881104., 4940425., 4969972., 4999617., 5029360., 4542965., 4579876.,
      4616941., 4654160., 6806497., 6863476., 6920697., 6978160., 6586993.,
      6643860., 6700969., 6758320., 3842245., 3877316., 3912541., 3947920.,
      5259429., 5300484., 5341693., 5383056., 8060497., 8123988., 8187721.,
      8251696., 8201441., 8264820., 8328441., 8392304., 5033077., 5072292.,
      5111661., 5151184., 3898510., 3929816., 3961262., 3992848., 5915990.,
      5964600., 6013430., 6062480., 5937910., 5987256., 6036822., 6086608.,
      3762094., 3793496., 3825038., 3856720., 1391458., 1409128., 1426882.,
      1444720., 1996250., 2023432., 2050746., 2078192., 1951290., 1978504.,
      2005850., 2033328., 1184834., 1202152., 1219554., 1237040., 5557041.,
      5588548., 5620153., 5651856., 8508397., 8557396., 8606549., 8655856.,
      7949117., 7997300., 8045637., 8094128., 4651329., 4681060., 4710889.,
      4740816., 4408845., 4446484., 4484277., 4522224., 6785753., 6844388.,
      6903265., 6962384., 6648169., 6706692., 6765457., 6824464., 3969373.,
      4005684., 4042149., 4078768., 5756093., 5797876., 5839813., 5881904.,
      8940873., 9006020., 9071409., 9137040., 9163737., 9228772., 9294049.,
      9359568., 5700877., 5741332., 5781941., 5822704., 3705982., 3738136.,
      3770430., 3802864., 5529350., 5579000., 5628870., 5678960., 5434022.,
      5483896., 5533990., 5584304., 3438750., 3470488., 3502366., 3534384.,
      1176690., 1193640., 1210674., 1227792., 1645866., 1671624., 1697514.,
      1723536., 1573770., 1599048., 1624458., 1650000., 954450.,  970536.,
      986706.,  1002960.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7032041., 7087364., 7142929., 7198736., 6730617., 6785828., 6841281.,
      6896976., 7384921., 7446756., 7508833., 7571152., 7443945., 7505668.,
      7567633., 7629840., 6806497., 6863476., 6920697., 6978160., 6586993.,
      6643860., 6700969., 6758320., 8060497., 8123988., 8187721., 8251696.,
      8201441., 8264820., 8328441., 8392304., 6785753., 6844388., 6903265.,
      6962384., 6648169., 6706692., 6765457., 6824464., 8940873., 9006020.,
      9071409., 9137040., 9163737., 9228772., 9294049., 9359568.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2786961., 2796418., 2820006., 2829512., 2853247., 2862802., 2886684.,
      2896288., 4368133., 4383610., 4420646., 4436200., 4473467., 4489098.,
      4526596., 4542304., 4710613., 4727322., 4765590., 4782376., 4820875.,
      4837738., 4876468., 4893408., 3000977., 3012002., 3036614., 3047688.,
      3072447., 3083570., 3108476., 3119648., 4157333., 4174266., 4210678.,
      4227688., 4264331., 4281418., 4318292., 4335456., 6136345., 6162386.,
      6217686., 6243848., 6299511., 6325794., 6381820., 6408224., 6115241.,
      6141170., 6196358., 6222408., 6277959., 6304130., 6360044., 6386336.,
      3740821., 3756634., 3790486., 3806376., 3840459., 3856426., 3890740.,
      3906784., 5807301., 5828378., 5868934., 5890088., 5930875., 5952106.,
      5993124., 6014432., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 4406213., 4426170., 4464166.,
      4484200., 4522427., 4542538., 4580996., 4601184., 3697306., 3715388.,
      3749960., 3768112., 3802894., 3821116., 3856108., 3874400., 5527554.,
      5555020., 5607224., 5634800., 5687334., 5715020., 5767884., 5795680.,
      5683810., 5710476., 5761880., 5788656., 5840390., 5867276., 5919340.,
      5946336., 3667482., 3683708., 3715208., 3731504., 3763214., 3779580.,
      3811500., 3827936., 3409862., 3422372., 3445576., 3458128., 3481458.,
      3494052., 3517508., 3530144., 5047134., 5067028., 5103256., 5123216.,
      5159642., 5179668., 5216292., 5236384., 5080574., 5101012., 5137784.,
      5158288., 5195258., 5215828., 5252996., 5273632., 3132486., 3145828.,
      3169544., 3182928., 3206770., 3220196., 3244164., 3257632., 3572809.,
      3585010., 3611342., 3623592., 3650071., 3662370., 3688996., 3701344.,
      5566813., 5586602., 5627950., 5647816., 5689395., 5709338., 5751148.,
      5771168., 5909293., 5930314., 5972894., 5993992., 6036803., 6057978.,
      6101020., 6122272., 3756361., 3770130., 3797486., 3811304., 3838807.,
      3852674., 3880324., 3894240., 4347117., 4364778., 4401918., 4419656.,
      4457027., 4474842., 4512444., 4530336., 6670737., 6698434., 6755390.,
      6783208., 6840527., 6868466., 6926148., 6954208., 6813473., 6841058.,
      6897902., 6925608., 6982815., 7010642., 7068212., 7096160., 4333805.,
      4350858., 4385950., 4403080., 4438403., 4455610., 4491164., 4508448.,
      5423645., 5445450., 5486734., 5508616., 5550131., 5572090., 5613836.,
      5635872., 7935233., 7969442., 8032910., 8067240., 8131071., 8165522.,
      8229716., 8264288., 7750289., 7784386., 7847742., 7881960., 7945679.,
      7980018., 8044100., 8078560., 4507677., 4528874., 4568110., 4589384.,
      4628851., 4650202., 4689900., 4711328., 3590442., 3605788., 3637624.,
      3653040., 3685086., 3700572., 3732828., 3748384., 5527378., 5551788.,
      5600936., 5625456., 5674934., 5699564., 5749372., 5774112., 5717938.,
      5743084., 5792968., 5818224., 5868438., 5893804., 5944348., 5969824.,
      3737258., 3753820., 3785656., 3802288., 3834334., 3851036., 3883292.,
      3900064., 2694326., 2706116., 2728600., 2740432., 2763042., 2774916.,
      2797652., 2809568., 3880846., 3899316., 3934120., 3952656., 3987658.,
      4006260., 4041460., 4060128., 3774510., 3793012., 3827848., 3846416.,
      3881450., 3900084., 3935316., 3954016., 2357558., 2369668., 2392152.,
      2404304., 2426914., 2439108., 2461844., 2474080., 4358657., 4373602.,
      4402678., 4417672., 4446895., 4461938., 4491308., 4506400., 6535605.,
      6559194., 6604342., 6628008., 6673387., 6697130., 6742740., 6766560.,
      5999493., 6022266., 6066598., 6089448., 6134011., 6156938., 6201732.,
      6224736., 3485185., 3499138., 3526678., 3540680., 3568367., 3582418.,
      3610252., 3624352., 4852293., 4870682., 4908550., 4927016., 4965115.,
      4983658., 5021988., 5040608., 7614729., 7644082., 7702694., 7732168.,
      7791143., 7820738., 7880076., 7909792., 7921305., 7950546., 8009046.,
      8038408., 8097271., 8126754., 8185980., 8215584., 5156165., 5174458.,
      5210790., 5229160., 5265723., 5284170., 5320964., 5339488., 5355381.,
      5377914., 5419926., 5442536., 5484779., 5507466., 5549940., 5572704.,
      8060025., 8095890., 8161014., 8197000., 8262487., 8298594., 8364444.,
      8400672., 8038921., 8074674., 8139686., 8175560., 8240935., 8276930.,
      8342668., 8378784., 4838517., 4860954., 4901430., 4923944., 4964651.,
      4987242., 5028180., 5050848., 3917242., 3933436., 3966120., 3982384.,
      4015278., 4031612., 4064716., 4081120., 6055586., 6081036., 6131224.,
      6156784., 6207302., 6232972., 6283820., 6309600., 6274306., 6299980.,
      6350392., 6376176., 6426918., 6452812., 6503884., 6529888., 4122426.,
      4139324., 4171496., 4188464., 4220846., 4237884., 4270476., 4287584.,
      2208166., 2219236., 2241000., 2252112., 2274002., 2285156., 2307172.,
      2318368., 3124158., 3141204., 3174584., 3191696., 3225274., 3242452.,
      3276228., 3293472., 2964062., 2980628., 3013528., 3030160., 3063258.,
      3079956., 3113252., 3130016., 1898022., 1908900., 1930152., 1941072.,
      1962450., 1973412., 1994916., 2005920.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6136345., 6162386., 6217686., 6243848., 6299511., 6325794., 6381820.,
      6408224., 6115241., 6141170., 6196358., 6222408., 6277959., 6304130.,
      6360044., 6386336., 8220041., 8252594., 8314406., 8347080., 8409255.,
      8442050., 8504588., 8537504., 7871257., 7903698., 7965398., 7997960.,
      8060023., 8092706., 8155132., 8187936., 6670737., 6698434., 6755390.,
      6783208., 6840527., 6868466., 6926148., 6954208., 6813473., 6841058.,
      6897902., 6925608., 6982815., 7010642., 7068212., 7096160., 7935233.,
      7969442., 8032910., 8067240., 8131071., 8165522., 8229716., 8264288.,
      7750289., 7784386., 7847742., 7881960., 7945679., 7980018., 8044100.,
      8078560., 7614729., 7644082., 7702694., 7732168., 7791143., 7820738.,
      7880076., 7909792., 7921305., 7950546., 8009046., 8038408., 8097271.,
      8126754., 8185980., 8215584., 8060025., 8095890., 8161014., 8197000.,
      8262487., 8298594., 8364444., 8400672., 8038921., 8074674., 8139686.,
      8175560., 8240935., 8276930., 8342668., 8378784.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2481713., 2491170., 2500627., 2510084., 2532906., 2542412., 2551918.,
      2561424., 2584491., 2594046., 2603601., 2613156., 2636468., 2646072.,
      2655676., 2665280., 3868565., 3884042., 3899519., 3914996., 3950474.,
      3966028., 3981582., 3997136., 4032999., 4048630., 4064261., 4079892.,
      4116140., 4131848., 4147556., 4163264., 4183653., 4200362., 4217071.,
      4233780., 4270490., 4287276., 4304062., 4320848., 4357943., 4374806.,
      4391669., 4408532., 4446012., 4462952., 4479892., 4496832., 2765329.,
      2776354., 2787379., 2798404., 2822218., 2833292., 2844366., 2855440.,
      2879499., 2890622., 2901745., 2912868., 2937172., 2948344., 2959516.,
      2970688., 4555525., 4572458., 4589391., 4606324., 4643194., 4660204.,
      4677214., 4694224., 4731479., 4748566., 4765653., 4782740., 4820380.,
      4837544., 4854708., 4871872., 7203961., 7230002., 7256043., 7282084.,
      7337338., 7363500., 7389662., 7415824., 7471683., 7497966., 7524249.,
      7550532., 7606996., 7633400., 7659804., 7686208., 6694921., 6720850.,
      6746779., 6772708., 6827850., 6853900., 6879950., 6906000., 6961747.,
      6987918., 7014089., 7040260., 7096612., 7122904., 7149196., 7175488.,
      3663205., 3679018., 3694831., 3710644., 3744538., 3760428., 3776318.,
      3792208., 3826487., 3842454., 3858421., 3874388., 3909052., 3925096.,
      3941140., 3957184., 5401909., 5422986., 5444063., 5465140., 5506154.,
      5527308., 5548462., 5569616., 5611015., 5632246., 5653477., 5674708.,
      5716492., 5737800., 5759108., 5780416., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 4359061., 4379018., 4398975., 4418932., 4456970., 4477004.,
      4497038., 4517072., 4555495., 4575606., 4595717., 4615828., 4654636.,
      4674824., 4695012., 4715200., 4225682., 4243764., 4261846., 4279928.,
      4315560., 4333712., 4351864., 4370016., 4405998., 4424220., 4442442.,
      4460664., 4496996., 4515288., 4533580., 4551872., 6303930., 6331396.,
      6358862., 6386328., 6439608., 6467184., 6494760., 6522336., 6576166.,
      6603852., 6631538., 6659224., 6713604., 6741400., 6769196., 6796992.,
      6502554., 6529220., 6555886., 6582552., 6635032., 6661808., 6688584.,
      6715360., 6768390., 6795276., 6822162., 6849048., 6902628., 6929624.,
      6956620., 6983616., 4451538., 4467764., 4483990., 4500216., 4532584.,
      4548880., 4565176., 4581472., 4614190., 4630556., 4646922., 4663288.,
      4696356., 4712792., 4729228., 4745664., 3262126., 3274636., 3287146.,
      3299656., 3323272., 3335824., 3348376., 3360928., 3384754., 3397348.,
      3409942., 3422536., 3446572., 3459208., 3471844., 3484480., 4618502.,
      4638396., 4658290., 4678184., 4714296., 4734256., 4754216., 4774176.,
      4810618., 4830644., 4850670., 4870696., 4907468., 4927560., 4947652.,
      4967744., 4684838., 4705276., 4725714., 4746152., 4782808., 4803312.,
      4823816., 4844320., 4881306., 4901876., 4922446., 4943016., 4980332.,
      5000968., 5021604., 5042240., 2785902., 2799244., 2812586., 2825928.,
      2849224., 2862608., 2875992., 2889376., 2912882., 2926308., 2939734.,
      2953160., 2976876., 2990344., 3003812., 3017280., 3219177., 3231378.,
      3243579., 3255780., 3281346., 3293596., 3305846., 3318096., 3343907.,
      3356206., 3368505., 3380804., 3406860., 3419208., 3431556., 3443904.,
      4971373., 4991162., 5010951., 5030740., 5070530., 5090396., 5110262.,
      5130128., 5170303., 5190246., 5210189., 5230132., 5270692., 5290712.,
      5310732., 5330752., 5286461., 5307482., 5328503., 5349524., 5390546.,
      5411644., 5432742., 5453840., 5495247., 5516422., 5537597., 5558772.,
      5600564., 5621816., 5643068., 5664320., 3470537., 3484306., 3498075.,
      3511844., 3538402., 3552220., 3566038., 3579856., 3606659., 3620526.,
      3634393., 3648260., 3675308., 3689224., 3703140., 3717056., 4659933.,
      4677594., 4695255., 4712916., 4750514., 4768252., 4785990., 4803728.,
      4841711., 4859526., 4877341., 4895156., 4933524., 4951416., 4969308.,
      4987200., 6636785., 6664482., 6692179., 6719876., 6776786., 6804604.,
      6832422., 6860240., 6917755., 6945694., 6973633., 7001572., 7059692.,
      7087752., 7115812., 7143872., 6455425., 6483010., 6510595., 6538180.,
      6594978., 6622684., 6650390., 6678096., 6735499., 6763326., 6791153.,
      6818980., 6876988., 6904936., 6932884., 6960832., 3844413., 3861466.,
      3878519., 3895572., 3930706., 3947836., 3964966., 3982096., 4017615.,
      4034822., 4052029., 4069236., 4105140., 4122424., 4139708., 4156992.,
      5408013., 5429818., 5451623., 5473428., 5515170., 5537052., 5558934.,
      5580816., 5622943., 5644902., 5666861., 5688820., 5731332., 5753368.,
      5775404., 5797440., 7922273., 7956482., 7990691., 8024900., 8088322.,
      8122652., 8156982., 8191312., 8255339., 8289790., 8324241., 8358692.,
      8423324., 8457896., 8492468., 8527040., 8134129., 8168226., 8202323.,
      8236420., 8299730., 8333948., 8368166., 8402384., 8466299., 8500638.,
      8534977., 8569316., 8633836., 8668296., 8702756., 8737216., 5130093.,
      5151290., 5172487., 5193684., 5232962., 5254236., 5275510., 5296784.,
      5336447., 5357798., 5379149., 5400500., 5440548., 5461976., 5483404.,
      5504832., 4203106., 4218452., 4233798., 4249144., 4282040., 4297456.,
      4312872., 4328288., 4361534., 4377020., 4392506., 4407992., 4441588.,
      4457144., 4472700., 4488256., 6036298., 6060708., 6085118., 6109528.,
      6159752., 6184272., 6208792., 6233312., 6284086., 6308716., 6333346.,
      6357976., 6409300., 6434040., 6458780., 6483520., 6039850., 6064996.,
      6090142., 6115288., 6166248., 6191504., 6216760., 6242016., 6293526.,
      6318892., 6344258., 6369624., 6421684., 6447160., 6472636., 6498112.,
      3787938., 3804500., 3821062., 3837624., 3870328., 3886960., 3903592.,
      3920224., 3953278., 3969980., 3986682., 4003384., 4036788., 4053560.,
      4070332., 4087104., 2831198., 2842988., 2854778., 2866568., 2889464.,
      2901296., 2913128., 2924960., 2948066., 2959940., 2971814., 2983688.,
      3007004., 3018920., 3030836., 3042752., 3991286., 4009756., 4028226.,
      4046696., 4081384., 4099920., 4118456., 4136992., 4172010., 4190612.,
      4209214., 4227816., 4263164., 4281832., 4300500., 4319168., 4040726.,
      4059228., 4077730., 4096232., 4130952., 4149520., 4168088., 4186656.,
      4221706., 4240340., 4258974., 4277608., 4312988., 4331688., 4350388.,
      4369088., 2470174., 2482284., 2494394., 2506504., 2528568., 2540720.,
      2552872., 2565024., 2587298., 2599492., 2611686., 2623880., 2646364.,
      2658600., 2670836., 2683072., 3956641., 3971586., 3986531., 4001476.,
      4029786., 4044780., 4059774., 4074768., 4103323., 4118366., 4133409.,
      4148452., 4177252., 4192344., 4207436., 4222528., 5877061., 5900650.,
      5924239., 5947828., 5991418., 6015084., 6038750., 6062416., 6106391.,
      6130134., 6153877., 6177620., 6221980., 6245800., 6269620., 6293440.,
      5485589., 5508362., 5531135., 5553908., 5596682., 5619532., 5642382.,
      5665232., 5708391., 5731318., 5754245., 5777172., 5820716., 5843720.,
      5866724., 5889728., 3435905., 3449858., 3463811., 3477764., 3504506.,
      3518508., 3532510., 3546512., 3573499., 3587550., 3601601., 3615652.,
      3642884., 3656984., 3671084., 3685184., 4608693., 4627082., 4645471.,
      4663860., 4702186., 4720652., 4739118., 4757584., 4796295., 4814838.,
      4833381., 4851924., 4891020., 4909640., 4928260., 4946880., 6888809.,
      6918162., 6947515., 6976868., 7035434., 7064908., 7094382., 7123856.,
      7183027., 7212622., 7242217., 7271812., 7331588., 7361304., 7391020.,
      7420736., 7035129., 7064370., 7093611., 7122852., 7181306., 7210668.,
      7240030., 7269392., 7328451., 7357934., 7387417., 7416900., 7476564.,
      7506168., 7535772., 7565376., 4484373., 4502666., 4520959., 4539252.,
      4575626., 4593996., 4612366., 4630736., 4667495., 4685942., 4704389.,
      4722836., 4759980., 4778504., 4797028., 4815552., 6044901., 6067434.,
      6089967., 6112500., 6154970., 6177580., 6200190., 6222800., 6265655.,
      6288342., 6311029., 6333716., 6376956., 6399720., 6422484., 6445248.,
      9157337., 9193202., 9229067., 9264932., 9330010., 9365996., 9401982.,
      9437968., 9503651., 9539758., 9575865., 9611972., 9678260., 9714488.,
      9750716., 9786944., 8648297., 8684050., 8719803., 8755556., 8820522.,
      8856396., 8892270., 8928144., 8993715., 9029710., 9065705., 9101700.,
      9167876., 9203992., 9240108., 9276224., 5049157., 5071594., 5094031.,
      5116468., 5156986., 5179500., 5202014., 5224528., 5265431., 5288022.,
      5310613., 5333204., 5374492., 5397160., 5419828., 5442496., 3995698.,
      4011892., 4028086., 4044280., 4078024., 4094288., 4110552., 4126816.,
      4160910., 4177244., 4193578., 4209912., 4244356., 4260760., 4277164.,
      4293568., 5772762., 5798212., 5823662., 5849112., 5900376., 5925936.,
      5951496., 5977056., 6028870., 6054540., 6080210., 6105880., 6158244.,
      6184024., 6209804., 6235584., 5833146., 5858820., 5884494., 5910168.,
      5961656., 5987440., 6013224., 6039008., 6091046., 6116940., 6142834.,
      6168728., 6221316., 6247320., 6273324., 6299328., 3755122., 3772020.,
      3788918., 3805816., 3838856., 3855824., 3872792., 3889760., 3923150.,
      3940188., 3957226., 3974264., 4008004., 4025112., 4042220., 4059328.,
      2859022., 2870092., 2881162., 2892232., 2914408., 2925520., 2936632.,
      2947744., 2970130., 2981284., 2992438., 3003592., 3026188., 3037384.,
      3048580., 3059776., 4183270., 4200316., 4217362., 4234408., 4267672.,
      4284784., 4301896., 4319008., 4352602., 4369780., 4386958., 4404136.,
      4438060., 4455304., 4472548., 4489792., 4387846., 4404412., 4420978.,
      4437544., 4470328., 4486960., 4503592., 4520224., 4553338., 4570036.,
      4586734., 4603432., 4636876., 4653640., 4670404., 4687168., 2785230.,
      2796108., 2806986., 2817864., 2838696., 2849616., 2860536., 2871456.,
      2892498., 2903460., 2914422., 2925384., 2946636., 2957640., 2968644.,
      2979648.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x15x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7203961., 7230002., 7256043., 7282084., 7337338., 7363500., 7389662.,
      7415824., 7471683., 7497966., 7524249., 7550532., 7606996., 7633400.,
      7659804., 7686208., 6694921., 6720850., 6746779., 6772708., 6827850.,
      6853900., 6879950., 6906000., 6961747., 6987918., 7014089., 7040260.,
      7096612., 7122904., 7149196., 7175488., 7506409., 7538962., 7571515.,
      7604068., 7665834., 7698508., 7731182., 7763856., 7826227., 7859022.,
      7891817., 7924612., 7987588., 8020504., 8053420., 8086336., 7390585.,
      7423026., 7455467., 7487908., 7549562., 7582124., 7614686., 7647248.,
      7709507., 7742190., 7774873., 7807556., 7870420., 7903224., 7936028.,
      7968832., 6636785., 6664482., 6692179., 6719876., 6776786., 6804604.,
      6832422., 6860240., 6917755., 6945694., 6973633., 7001572., 7059692.,
      7087752., 7115812., 7143872., 6455425., 6483010., 6510595., 6538180.,
      6594978., 6622684., 6650390., 6678096., 6735499., 6763326., 6791153.,
      6818980., 6876988., 6904936., 6932884., 6960832., 7922273., 7956482.,
      7990691., 8024900., 8088322., 8122652., 8156982., 8191312., 8255339.,
      8289790., 8324241., 8358692., 8423324., 8457896., 8492468., 8527040.,
      8134129., 8168226., 8202323., 8236420., 8299730., 8333948., 8368166.,
      8402384., 8466299., 8500638., 8534977., 8569316., 8633836., 8668296.,
      8702756., 8737216., 6888809., 6918162., 6947515., 6976868., 7035434.,
      7064908., 7094382., 7123856., 7183027., 7212622., 7242217., 7271812.,
      7331588., 7361304., 7391020., 7420736., 7035129., 7064370., 7093611.,
      7122852., 7181306., 7210668., 7240030., 7269392., 7328451., 7357934.,
      7387417., 7416900., 7476564., 7506168., 7535772., 7565376., 9157337.,
      9193202., 9229067., 9264932., 9330010., 9365996., 9401982., 9437968.,
      9503651., 9539758., 9575865., 9611972., 9678260., 9714488., 9750716.,
      9786944., 8648297., 8684050., 8719803., 8755556., 8820522., 8856396.,
      8892270., 8928144., 8993715., 9029710., 9065705., 9101700., 9167876.,
      9203992., 9240108., 9276224.};
  const std::array<int, 4> in_shape = {{3, 18, 15, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      288148.,  406483.,  432047.,  276801.,  620092.,  856317.,  885841.,
      558327.,  972092.,  1328701., 1358225., 849079.,  1049100., 1424555.,
      1448975., 899605.,  422212.,  562969.,  571813.,  345863.,  1650964.,
      2247091., 2272655., 1419873., 2204092., 2982045., 3011569., 1866711.,
      2556092., 3454429., 3483953., 2157463., 2362380., 3182795., 3207215.,
      1978165., 906052.,  1199737., 1208581., 726887.,  3013780., 4087699.,
      4113263., 2562945., 3788092., 5107773., 5137297., 3175095., 4140092.,
      5580157., 5609681., 3465847., 3675660., 4941035., 4965455., 3056725.,
      1389892., 1836505., 1845349., 1107911.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      848936.,  878460.,  1321320., 1350844., 2974664., 3004188.,
      3447048., 3476572., 5100392., 5129916., 5572776., 5602300.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      573356.,   576296.,   808731.,   812966.,   859551.,  864094.,  550613.,
      553602.,   1232748.,  1240184.,  1702107.,  1712634., 1760671., 1771682.,
      1109493.,  1116654.,  1931116.,  1944184.,  2639131., 2657402., 2697695.,
      2716450.,  1686069.,  1698158.,  2081840.,  2098200., 2826340., 2849110.,
      2874740.,  2897950.,  1784300.,  1799210.,  833072.,  844424.,  1110164.,
      1125938.,  1127588.,  1143626.,  681436.,   691726.,  3282860., 3301928.,
      4467771.,  4494182.,  4518591.,  4545310.,  2822645., 2839746., 4375404.,
      4408184.,  5918715.,  5964090.,  5977279.,  6023138., 3704085., 3733422.,
      5073772.,  5112184.,  6855739.,  6908858.,  6914303., 6967906., 4280661.,
      4314926.,  4685360.,  4724760.,  6311140.,  6365590., 6359540., 6414430.,
      3921260.,  3956330.,  1786928.,  1812104.,  2364692., 2399474., 2382116.,
      2417162.,  1431388.,  1453774.,  5992364.,  6027560., 8126811., 8175398.,
      8177631.,  8226526.,  5094677.,  5125890.,  7518060., 7576184., 10135323.,
      10215546., 10193887., 10274594., 6298677.,  6350190., 8216428., 8280184.,
      11072347., 11160314., 11130911., 11219362., 6875253., 6931694., 7288880.,
      7351320.,  9795940.,  9882070.,  9844340.,  9930910., 6058220., 6113450.,
      2740784.,  2779784.,  3619220.,  3673010.,  3636644., 3690698., 2181340.,
      2215822.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1687466.,  1697872.,  1746030.,  1756920.,  2624490.,  2642640.,
      2683054.,  2701688.,  5904074.,  5949328.,  5962638.,  6008376.,
      6841098.,  6894096.,  6899662.,  6953144.,  10120682., 10200784.,
      10179246., 10259832., 11057706., 11145552., 11116270., 11204600.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1143772.,  1146712.,  1149652.,  1152592.,  1613227.,  1617462.,
      1621697.,  1625932.,  1714559.,  1719102.,  1723645.,  1728188.,
      1098237.,  1101226.,  1104215.,  1107204.,  2458060.,  2465496.,
      2472932.,  2480368.,  3393687.,  3404214.,  3414741.,  3425268.,
      3510331.,  3521342.,  3532353.,  3543364.,  2211825.,  2218986.,
      2226147.,  2233308.,  3849164.,  3862232.,  3875300.,  3888368.,
      5259991.,  5278262.,  5296533.,  5314804.,  5376635.,  5395390.,
      5414145.,  5432900.,  3360049.,  3372138.,  3384227.,  3396316.,
      4147320.,  4163680.,  4180040.,  4196400.,  5629910.,  5652680.,
      5675450.,  5698220.,  5726270.,  5749480.,  5772690.,  5795900.,
      3553690.,  3568600.,  3583510.,  3598420.,  1654792.,  1666144.,
      1677496.,  1688848.,  2204554.,  2220328.,  2236102.,  2251876.,
      2239138.,  2255176.,  2271214.,  2287252.,  1352582.,  1362872.,
      1373162.,  1383452.,  6546652.,  6565720.,  6584788.,  6603856.,
      8909131.,  8935542.,  8961953.,  8988364.,  9010463.,  9037182.,
      9063901.,  9090620.,  5628189.,  5645290.,  5662391.,  5679492.,
      8718028.,  8750808.,  8783588.,  8816368.,  11792055., 11837430.,
      11882805., 11928180., 11908699., 11954558., 12000417., 12046276.,
      7378833.,  7408170.,  7437507.,  7466844.,  8196300.,  8230616.,
      8264932.,  8299248.,  11062007., 11109494., 11156981., 11204468.,
      11178651., 11226622., 11274593., 11322564., 6903505.,  6934186.,
      6964867.,  6995548.,  3482232.,  3505248.,  3528264.,  3551280.,
      4660502.,  4692424.,  4724346.,  4756268.,  4756862.,  4789224.,
      4821586.,  4853948.,  2890202.,  2910936.,  2931670.,  2952404.,
      583176.,   591968.,   600760.,   609552.,   752202.,   764456.,
      776710.,   788964.,   786786.,   799304.,   811822.,   824340.,
      446278.,   454328.,   462378.,   470428.,   2344412.,  2350936.,
      2357460.,  2363984.,  3234539.,  3243702.,  3252865.,  3262028.,
      3335871.,  3345342.,  3354813.,  3364284.,  2104893.,  2111018.,
      2117143.,  2123268.,  3849164.,  3862232.,  3875300.,  3888368.,
      5259991.,  5278262.,  5296533.,  5314804.,  5376635.,  5395390.,
      5414145.,  5432900.,  3360049.,  3372138.,  3384227.,  3396316.,
      5240268.,  5258968.,  5277668.,  5296368.,  7126295.,  7152310.,
      7178325.,  7204340.,  7242939.,  7269438.,  7295937.,  7322436.,
      4508273.,  4525290.,  4542307.,  4559324.,  5299320.,  5320800.,
      5342280.,  5363760.,  7171670.,  7201480.,  7231290.,  7261100.,
      7268030.,  7298280.,  7328530.,  7358780.,  4498970.,  4518360.,
      4537750.,  4557140.,  2075656.,  2090080.,  2104504.,  2118928.,
      2757898.,  2777896.,  2797894.,  2817892.,  2792482.,  2812744.,
      2833006.,  2853268.,  1683206.,  1696184.,  1709162.,  1722140.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3364526.,  3374932.,  3385338.,  3395744.,  3481170.,  3492060.,
      3502950.,  3513840.,  5230830.,  5248980.,  5267130.,  5285280.,
      5347474.,  5366108.,  5384742.,  5403376.,  11762894., 11808148.,
      11853402., 11898656., 11879538., 11925276., 11971014., 12016752.,
      11032846., 11080212., 11127578., 11174944., 11149490., 11197340.,
      11245190., 11293040., 5230830.,  5248980.,  5267130.,  5285280.,
      5347474.,  5366108.,  5384742.,  5403376.,  7097134.,  7123028.,
      7148922.,  7174816.,  7213778.,  7240156.,  7266534.,  7292912.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1137304., 1152592.,  1604757.,  1625932.,  1706397.,  1728188.,  1093337.,
      1107204., 2454584.,  2480368.,  3389573.,  3425268.,  3506701.,  3543364.,
      2209977., 2233308.,  3851320.,  3888368.,  5263621.,  5314804.,  5380749.,
      5432900., 3363129.,  3396316.,  4154640.,  4196400.,  5640580.,  5698220.,
      5737380., 5795900.,  3561180.,  3598420.,  1662832.,  1688848.,  2215972.,
      2251876., 2250820.,  2287252.,  1360268.,  1383452.,  6556312.,  6603856.,
      8922837., 8988364.,  9024477.,  9090620.,  5637401.,  5679492.,  8739896.,
      8816368., 11822789., 11928180., 11939917., 12046276., 7399161.,  7466844.,
      8219704., 8299248.,  11094853., 11204468., 11211981., 11322564., 6925177.,
      6995548., 3496208.,  3551280.,  4680324.,  4756268.,  4777124.,  4853948.,
      2903516., 2952404.,  588656.,   609552.,   760100.,   788964.,   794948.,
      824340.,  451724.,   470428.,   2341528.,  2363984.,  3230997.,  3262028.,
      3332637., 3364284.,  2103129.,  2123268.,  3851320.,  3888368.,  5263621.,
      5314804., 5380749.,  5432900.,  3363129.,  3396316.,  5248056.,  5296368.,
      7137669., 7204340.,  7254797.,  7322436.,  4516281.,  4559324.,  5311760.,
      5363760., 7189380.,  7261100.,  7286180.,  7358780.,  4510940.,  4557140.,
      2086768., 2118928.,  2773540.,  2817892.,  2808388.,  2853268.,  1693580.,
      1722140.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3360291.,  3395744.,  3477419.,  3513840.,  5234339.,  5285280.,
      5351467.,  5403376.,  11793507., 11898656., 11910635., 12016752.,
      11065571., 11174944., 11182699., 11293040., 5234339.,  5285280.,
      5351467.,  5403376.,  7108387.,  7174816.,  7225515.,  7292912.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2268784.,  2274608.,  2299304.,  2305184.,  3201121.,  3209514.,
      3243394.,  3251864.,  3403785.,  3412794.,  3447290.,  3456376.,
      2180745.,  2186674.,  2208430.,  2214408.,  4894384.,  4909168.,
      4945864.,  4960736.,  6758213.,  6779146.,  6829482.,  6850536.,
      6991501.,  7013402.,  7064706.,  7086728.,  4405709.,  4419954.,
      4452294.,  4466616.,  7676592.,  7702640.,  7750600.,  7776736.,
      10490821., 10527242., 10593066., 10629608., 10724109., 10761498.,
      10828290., 10865800., 6702157.,  6726258.,  6768454.,  6792632.,
      4991648.,  5016096.,  5058704.,  5083232.,  6786450.,  6820616.,
      6879092.,  6913368.,  6979170.,  7014216.,  7073572.,  7108728.,
      4318594.,  4341176.,  4378668.,  4401320.,  1459808.,  1474272.,
      1495408.,  1509920.,  1933646.,  1953864.,  1982860.,  2003144.,
      2002814.,  2023560.,  2053084.,  2073896.,  1187550.,  1200920.,
      1219540.,  1232952.,  3469424.,  3478832.,  3507112.,  3516576.,
      4822433.,  4835754.,  4874562.,  4887960.,  5025097.,  5039034.,
      5078458.,  5092472.,  3187401.,  3196466.,  3221358.,  3230472.,
      6285488.,  6305904.,  6348232.,  6368736.,  8624517.,  8653194.,
      8711274.,  8740072.,  8857805.,  8887450.,  8946498.,  8976264.,
      5553933.,  5573106.,  5610374.,  5629624.,  7154864.,  7182448.,
      7231944.,  7259616.,  9760773.,  9799306.,  9867242.,  9905896.,
      9994061.,  10033562., 10102466., 10142088., 6226829.,  6252274.,
      6295814.,  6321336.,  3579552.,  3600928.,  3640464.,  3661920.,
      4870162.,  4900104.,  4954356.,  4984408.,  5062882.,  5093704.,
      5148836.,  5179768.,  3120642.,  3140536.,  3175340.,  3195304.,
      758368.,   767712.,   783728.,   793120.,   1011406.,  1024584.,
      1046540.,  1059784.,  1080574.,  1094280.,  1116764.,  1130536.,
      636510.,   645400.,   659540.,   668472.,   4670064.,  4683056.,
      4714920.,  4727968.,  6443745.,  6461994.,  6505730.,  6524056.,
      6646409.,  6665274.,  6709626.,  6728568.,  4194057.,  4206258.,
      4234286.,  4246536.,  7676592.,  7702640.,  7750600.,  7776736.,
      10490821., 10527242., 10593066., 10629608., 10724109., 10761498.,
      10828290., 10865800., 6702157.,  6726258.,  6768454.,  6792632.,
      5260976.,  5286000.,  5332936.,  5358048.,  7177797.,  7212810.,
      7277226.,  7312360.,  7411085.,  7447066.,  7512450.,  7548552.,
      4601037.,  4624242.,  4665542.,  4688824.,  2888352.,  2906656.,
      2943120.,  2961504.,  3945106.,  3970824.,  4020852.,  4046680.,
      4137826.,  4164424.,  4215332.,  4242040.,  2553474.,  2570680.,
      2602796.,  2620072.,  777824.,   782048.,   792944.,   797216.,
      1080398.,  1086536.,  1101452.,  1107656.,  1149566.,  1156232.,
      1171676.,  1178408.,  716254.,   720664.,   730324.,   734776.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6699891.,  6720582.,  6770676.,  6791488.,  6933179.,  6954838.,
      7005900.,  7027680.,  10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752., 8566195.,  8594630.,
      8652468.,  8681024.,  8799483.,  8828886.,  8887692.,  8917216.,
      9702451.,  9740742.,  9808436.,  9846848.,  9935739.,  9974998.,
      10043660., 10083040., 10432499., 10468678., 10534260., 10570560.,
      10665787., 10702934., 10769484., 10806752., 7119475.,  7154246.,
      7218420.,  7253312.,  7352763.,  7388502.,  7453644.,  7489504.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1699360., 1705184., 1711008., 1716832., 1738840., 1744720., 1750600.,
      1756480., 2367993., 2376386., 2384779., 2393172., 2423278., 2431748.,
      2440218., 2448688., 2539233., 2548242., 2557251., 2566260., 2596982.,
      2606068., 2615154., 2624240., 1613801., 1619730., 1625659., 1631588.,
      1651202., 1657180., 1663158., 1669136., 4189088., 4203872., 4218656.,
      4233440., 4270456., 4285328., 4300200., 4315072., 5734085., 5755018.,
      5775951., 5796884., 5847318., 5868372., 5889426., 5910480., 5966221.,
      5988122., 6010023., 6031924., 6083326., 6105348., 6127370., 6149392.,
      3761653., 3775898., 3790143., 3804388., 3836826., 3851148., 3865470.,
      3879792., 6989728., 7015776., 7041824., 7067872., 7116152., 7142288.,
      7168424., 7194560., 9448261., 9484682., 9521103., 9557524., 9623446.,
      9659988., 9696530., 9733072., 9680397., 9717786., 9755175., 9792564.,
      9859454., 9896964., 9934474., 9971984., 6050933., 6075034., 6099135.,
      6123236., 6165530., 6189708., 6213886., 6238064., 5455296., 5479744.,
      5504192., 5528640., 5571920., 5596448., 5620976., 5645504., 7390638.,
      7424804., 7458970., 7493136., 7552260., 7586536., 7620812., 7655088.,
      7586782., 7621828., 7656874., 7691920., 7751924., 7787080., 7822236.,
      7857392., 4815566., 4838148., 4860730., 4883312., 4921308., 4943960.,
      4966612., 4989264., 2858048., 2872512., 2886976., 2901440., 2928176.,
      2942688., 2957200., 2971712., 3791778., 3811996., 3832214., 3852432.,
      3889116., 3909400., 3929684., 3949968., 3921394., 3942140., 3962886.,
      3983632., 4020844., 4041656., 4062468., 4083280., 2361730., 2375100.,
      2388470., 2401840., 2425668., 2439080., 2452492., 2465904., 2720800.,
      2730208., 2739616., 2749024., 2774616., 2784080., 2793544., 2803008.,
      3737913., 3751234., 3764555., 3777876., 3812910., 3826308., 3839706.,
      3853104., 3909153., 3923090., 3937027., 3950964., 3986614., 4000628.,
      4014642., 4028656., 2477097., 2486162., 2495227., 2504292., 2527042.,
      2536156., 2545270., 2554384., 5589408., 5609824., 5630240., 5650656.,
      5693304., 5713808., 5734312., 5754816., 7591173., 7619850., 7648527.,
      7677204., 7735382., 7764180., 7792978., 7821776., 7823309., 7852954.,
      7882599., 7912244., 7971390., 8001156., 8030922., 8060688., 4906293.,
      4925466., 4944639., 4963812., 5001178., 5020428., 5039678., 5058928.,
      6665632., 6693216., 6720800., 6748384., 6798200., 6825872., 6853544.,
      6881216., 9001861., 9040394., 9078927., 9117460., 9185494., 9224148.,
      9262802., 9301456., 9233997., 9273498., 9312999., 9352500., 9421502.,
      9461124., 9500746., 9540368., 5787061., 5812506., 5837951., 5863396.,
      5907034., 5932556., 5958078., 5983600., 5714368., 5735744., 5757120.,
      5778496., 5818704., 5840160., 5861616., 5883072., 7822126., 7852068.,
      7882010., 7911952., 7966852., 7996904., 8026956., 8057008., 8018270.,
      8049092., 8079914., 8110736., 8166516., 8197448., 8228380., 8259312.,
      5174862., 5194756., 5214650., 5234544., 5269852., 5289816., 5309780.,
      5329744., 1394752., 1404096., 1413440., 1422784., 1444400., 1453792.,
      1463184., 1472576., 1888802., 1901980., 1915158., 1928336., 1957980.,
      1971224., 1984468., 1997712., 2018418., 2032124., 2045830., 2059536.,
      2089708., 2103480., 2117252., 2131024., 1264130., 1273020., 1281910.,
      1290800., 1310148., 1319080., 1328012., 1336944., 3742240., 3755232.,
      3768224., 3781216., 3810392., 3823440., 3836488., 3849536., 5107833.,
      5126082., 5144331., 5162580., 5202542., 5220868., 5239194., 5257520.,
      5279073., 5297938., 5316803., 5335668., 5376246., 5395188., 5414130.,
      5433072., 3340393., 3352594., 3364795., 3376996., 3402882., 3415132.,
      3427382., 3439632., 6989728., 7015776., 7041824., 7067872., 7116152.,
      7142288., 7168424., 7194560., 9448261., 9484682., 9521103., 9557524.,
      9623446., 9659988., 9696530., 9733072., 9680397., 9717786., 9755175.,
      9792564., 9859454., 9896964., 9934474., 9971984., 6050933., 6075034.,
      6099135., 6123236., 6165530., 6189708., 6213886., 6238064., 5698464.,
      5723488., 5748512., 5773536., 5820792., 5845904., 5871016., 5896128.,
      7738821., 7773834., 7808847., 7843860., 7908374., 7943508., 7978642.,
      8013776., 7970957., 8006938., 8042919., 8078900., 8144382., 8180484.,
      8216586., 8252688., 5060853., 5084058., 5107263., 5130468., 5171866.,
      5195148., 5218430., 5241712., 3745216., 3763520., 3781824., 3800128.,
      3837264., 3855648., 3874032., 3892416., 4993198., 5018916., 5044634.,
      5070352., 5121028., 5146856., 5172684., 5198512., 5189342., 5215940.,
      5242538., 5269136., 5320692., 5347400., 5374108., 5400816., 3125710.,
      3142916., 3160122., 3177328., 3209948., 3227224., 3244500., 3261776.,
      1373248., 1377472., 1381696., 1385920., 1402416., 1406688., 1410960.,
      1415232., 1968290., 1974428., 1980566., 1986704., 2009308., 2015512.,
      2021716., 2027920., 2097906., 2104572., 2111238., 2117904., 2141036.,
      2147768., 2154500., 2161232., 1428098., 1432508., 1436918., 1441328.,
      1456196., 1460648., 1465100., 1469552.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5676051., 5696742., 5717433., 5738124., 5788316., 5809128., 5829940.,
      5850752., 5908187., 5929846., 5951505., 5973164., 6024324., 6046104.,
      6067884., 6089664., 9390227., 9426406., 9462585., 9498764., 9564444.,
      9600744., 9637044., 9673344., 9622363., 9659510., 9696657., 9733804.,
      9800452., 9837720., 9874988., 9912256., 7533139., 7561574., 7590009.,
      7618444., 7676380., 7704936., 7733492., 7762048., 7765275., 7794678.,
      7824081., 7853484., 7912388., 7941912., 7971436., 8000960., 8943827.,
      8982118., 9020409., 9058700., 9126492., 9164904., 9203316., 9241728.,
      9175963., 9215222., 9254481., 9293740., 9362500., 9401880., 9441260.,
      9480640., 9390227., 9426406., 9462585., 9498764., 9564444., 9600744.,
      9637044., 9673344., 9622363., 9659510., 9696657., 9733804., 9800452.,
      9837720., 9874988., 9912256., 7680787., 7715558., 7750329., 7785100.,
      7849372., 7884264., 7919156., 7954048., 7912923., 7948662., 7984401.,
      8020140., 8085380., 8121240., 8157100., 8192960.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4518808., 4549216., 4579736., 4610368., 6376909., 6419028., 6461301.,
      6503728., 6782237., 6825588., 6869093., 6912752., 4345761., 4373348.,
      4401033., 4428816., 4569208., 4608224., 4647416., 4686784., 6441633.,
      6495764., 6550137., 6604752., 6908209., 6964276., 7020585., 7077136.,
      4395909., 4431588., 4467421., 4503408., 5726328., 5771488., 5816824.,
      5862336., 7981985., 8044564., 8107385., 8170448., 8448561., 8513076.,
      8577833., 8642832., 5333125., 5374180., 5415389., 5456752., 4034288.,
      4068416., 4102704., 4137152., 5664010., 5711376., 5758962., 5806768.,
      6049450., 6098576., 6147922., 6197488., 3834194., 3865456., 3896858.,
      3928400., 1389328., 1408448., 1427664., 1446976., 1898710., 1925264.,
      1951950., 1978768., 2037046., 2064656., 2092398., 2120272., 1237390.,
      1254960., 1272614., 1290352., 5007256., 5040736., 5074328., 5108032.,
      7023181., 7069524., 7116021., 7162672., 7428509., 7476084., 7523813.,
      7571696., 4735521., 4765796., 4796169., 4826640., 4787320., 4829408.,
      4871672., 4914112., 6716193., 6774548., 6833145., 6891984., 7182769.,
      7243060., 7303593., 7364368., 4549125., 4587492., 4626013., 4664688.,
      5473400., 5517536., 5561848., 5606336., 7642657., 7703828., 7765241.,
      7826896., 8109233., 8172340., 8235689., 8299280., 5124357., 5164516.,
      5204829., 5245296., 3774192., 3810368., 3846704., 3883200., 5289482.,
      5339664., 5390066., 5440688., 5674922., 5726864., 5779026., 5831408.,
      3581522., 3614576., 3647770., 3681104., 1108752., 1125824., 1142992.,
      1160256., 1529814., 1553552., 1577422., 1601424., 1668150., 1692944.,
      1717870., 1742928., 1016974., 1032752., 1048614., 1064560., 4123544.,
      4156000., 4188568., 4221248., 5816525., 5861460., 5906549., 5951792.,
      6221853., 6268020., 6314341., 6360816., 3974817., 4004196., 4033673.,
      4063248., 5726328., 5771488., 5816824., 5862336., 7981985., 8044564.,
      8107385., 8170448., 8448561., 8513076., 8577833., 8642832., 5333125.,
      5374180., 5415389., 5456752., 4569208., 4608224., 4647416., 4686784.,
      6441633., 6495764., 6550137., 6604752., 6908209., 6964276., 7020585.,
      7077136., 4395909., 4431588., 4467421., 4503408., 4234992., 4273216.,
      4311600., 4350144., 5906186., 5959184., 6012402., 6065840., 6291626.,
      6346384., 6401362., 6456560., 3959634., 3994480., 4029466., 4064592.,
      1549072., 1564096., 1579216., 1594432., 2152150., 2173072., 2194126.,
      2215312., 2290486., 2312464., 2334574., 2356816., 1427342., 1441328.,
      1455398., 1469552.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6324989., 6378636., 6432525., 6486656., 6791565., 6847148., 6902973.,
      6959040., 7865341., 7927436., 7989773., 8052352., 8331917., 8395948.,
      8460221., 8524736., 6599549., 6657420., 6715533., 6773888., 7066125.,
      7125932., 7185981., 7246272., 7526013., 7586700., 7647629., 7708800.,
      7992589., 8055212., 8118077., 8181184., 7865341., 7927436., 7989773.,
      8052352., 8331917., 8395948., 8460221., 8524736., 6324989., 6378636.,
      6432525., 6486656., 6791565., 6847148., 6902973., 6959040.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3382760., 3394352., 3422016., 3433664., 3461496., 3473200., 3501200.,
      3512960., 4714581., 4731290., 4769558., 4786344., 4824843., 4841706.,
      4880436., 4897376., 5057061., 5075002., 5114502., 5132520., 5172251.,
      5190346., 5230308., 5248480., 3214113., 3225922., 3251318., 3263176.,
      3288719., 3300626., 3326316., 3338272., 4264392., 4281584., 4320832.,
      4338112., 4377624., 4394992., 4434768., 4452224., 6015537., 6040386.,
      6094494., 6119464., 6173935., 6199026., 6253860., 6279072., 6479809.,
      6506594., 6562638., 6589544., 6645951., 6672978., 6729748., 6756896.,
      4226061., 4243722., 4279422., 4297160., 4333091., 4350906., 4387068.,
      4404960., 5786056., 5809392., 5854784., 5878208., 5923864., 5947376.,
      5993296., 6016896., 7908145., 7941442., 8003998., 8037416., 8100335.,
      8133874., 8197156., 8230816., 8372417., 8407650., 8472142., 8507496.,
      8572351., 8607826., 8673044., 8708640., 5177613., 5200650., 5241726.,
      5264840., 5306147., 5329338., 5370876., 5394144., 3781424., 3797472.,
      3832192., 3848320., 3883280., 3899488., 3934688., 3950976., 5323670.,
      5346836., 5394740., 5418016., 5466250., 5489636., 5538200., 5561696.,
      5715958., 5740884., 5790548., 5815584., 5865578., 5890724., 5941048.,
      5966304., 3738238., 3754660., 3786356., 3802848., 3834754., 3851316.,
      3883432., 3900064., 2672976., 2685472., 2710144., 2722688., 2747504.,
      2760096., 2785056., 2797696., 3670010., 3687852., 3722028., 3739936.,
      3774310., 3792284., 3826856., 3844896., 3929242., 3948140., 3983372.,
      4002336., 4037766., 4056796., 4092424., 4111520., 2462418., 2474780.,
      2497516., 2509920., 2532782., 2545228., 2568216., 2580704., 3701224.,
      3715888., 3746624., 3761344., 3792248., 3807024., 3838096., 3852928.,
      5150933., 5171866., 5214358., 5235368., 5278091., 5299178., 5342132.,
      5363296., 5493413., 5515578., 5559302., 5581544., 5625499., 5647818.,
      5692004., 5714400., 3532193., 3546690., 3574774., 3589320., 3617551.,
      3632146., 3660524., 3675168., 6139336., 6159600., 6201920., 6222272.,
      6264856., 6285296., 6328144., 6348672., 8592049., 8621122., 8679454.,
      8708648., 8767343., 8796658., 8855716., 8885152., 9056321., 9087330.,
      9147598., 9178728., 9239359., 9270610., 9331604., 9362976., 5906061.,
      5926410., 5964798., 5985224., 6023843., 6044346., 6083196., 6103776.,
      4625864., 4648176., 4692544., 4714944., 4759576., 4782064., 4826960.,
      4849536., 6378929., 6410818., 6471966., 6503976., 6565487., 6597618.,
      6659492., 6691744., 6843201., 6877026., 6940110., 6974056., 7037503.,
      7071570., 7135380., 7169568., 4302221., 4324362., 4364542., 4386760.,
      4427171., 4449466., 4490108., 4512480., 5225264., 5243360., 5280128.,
      5298304., 5335312., 5353568., 5390816., 5409152., 7324310., 7350292.,
      7401012., 7427104., 7478154., 7504356., 7555736., 7582048., 7716598.,
      7744340., 7796820., 7824672., 7877482., 7905444., 7958584., 7986656.,
      5066110., 5084324., 5117812., 5136096., 5169794., 5188148., 5222056.,
      5240480., 1982800., 1993248., 2015872., 2026368., 2049136., 2059680.,
      2082592., 2093184., 2803962., 2818988., 2850348., 2865440., 2896998.,
      2912156., 2943912., 2959136., 3063194., 3079276., 3111692., 3127840.,
      3160454., 3176668., 3209480., 3225760., 2023378., 2033948., 2054892.,
      2065504., 2086574., 2097228., 2118424., 2129120., 3376616., 3390256.,
      3419968., 3433664., 3463544., 3477296., 3507344., 3521152., 4770645.,
      4790170., 4831254., 4850856., 4892171., 4911850., 4953396., 4973152.,
      5113125., 5133882., 5176198., 5197032., 5239579., 5260490., 5303268.,
      5324256., 3387937., 3401538., 3428726., 3442376., 3469711., 3483410.,
      3510892., 3524640., 5786056., 5809392., 5854784., 5878208., 5923864.,
      5947376., 5993296., 6016896., 7908145., 7941442., 8003998., 8037416.,
      8100335., 8133874., 8197156., 8230816., 8372417., 8407650., 8472142.,
      8507496., 8572351., 8607826., 8673044., 8708640., 5177613., 5200650.,
      5241726., 5264840., 5306147., 5329338., 5370876., 5394144., 4264392.,
      4281584., 4320832., 4338112., 4377624., 4394992., 4434768., 4452224.,
      6015537., 6040386., 6094494., 6119464., 6173935., 6199026., 6253860.,
      6279072., 6479809., 6506594., 6562638., 6589544., 6645951., 6672978.,
      6729748., 6756896., 4226061., 4243722., 4279422., 4297160., 4333091.,
      4350906., 4387068., 4404960., 4440880., 4461024., 4499840., 4520064.,
      4559120., 4579424., 4618720., 4639104., 6064534., 6093332., 6146868.,
      6175776., 6229642., 6258660., 6312856., 6341984., 6456822., 6487380.,
      6542676., 6573344., 6628970., 6659748., 6715704., 6746592., 3985534.,
      4005540., 4040820., 4060896., 4096386., 4116532., 4152232., 4172448.,
      2734416., 2742816., 2763392., 2771840., 2792560., 2801056., 2821920.,
      2830464., 3920378., 3932588., 3961132., 3973408., 4002150., 4014492.,
      4043432., 4055840., 4179610., 4192876., 4222476., 4235808., 4265606.,
      4279004., 4309000., 4322464., 2845906., 2854684., 2873836., 2882656.,
      2901934., 2910796., 2930200., 2939104.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5899469., 5923834., 5977458., 6001944., 6055931., 6080538., 6134888.,
      6159616., 6363741., 6390042., 6445602., 6472024., 6527947., 6554490.,
      6610776., 6637440., 7792077., 7824890., 7886962., 7919896., 7982331.,
      8015386., 8078184., 8111360., 8256349., 8291098., 8355106., 8389976.,
      8454347., 8489338., 8554072., 8589184., 8475981., 8504570., 8562418.,
      8591128., 8649339., 8678170., 8736744., 8765696., 8940253., 8970778.,
      9030562., 9061208., 9121355., 9152122., 9212632., 9243520., 6262861.,
      6294266., 6354930., 6386456., 6447483., 6479130., 6540520., 6572288.,
      6727133., 6760474., 6823074., 6856536., 6919499., 6953082., 7016408.,
      7050112., 7792077., 7824890., 7886962., 7919896., 7982331., 8015386.,
      8078184., 8111360., 8256349., 8291098., 8355106., 8389976., 8454347.,
      8489338., 8554072., 8589184., 5899469., 5923834., 5977458., 6001944.,
      6055931., 6080538., 6134888., 6159616., 6363741., 6390042., 6445602.,
      6472024., 6527947., 6554490., 6610776., 6637440.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3024008., 3035600., 3047192., 3058784., 3085568., 3097216., 3108864.,
      3120512., 3147576., 3159280., 3170984., 3182688., 3210032., 3221792.,
      3233552., 3245312., 4177253., 4193962., 4210671., 4227380., 4264090.,
      4280876., 4297662., 4314448., 4351543., 4368406., 4385269., 4402132.,
      4439612., 4456552., 4473492., 4490432., 4492341., 4510282., 4528223.,
      4546164., 4584106., 4602124., 4620142., 4638160., 4676487., 4694582.,
      4712677., 4730772., 4769484., 4787656., 4805828., 4824000., 2961441.,
      2973250., 2985059., 2996868., 3021466., 3033324., 3045182., 3057040.,
      3081883., 3093790., 3105697., 3117604., 3142692., 3154648., 3166604.,
      3178560., 4508776., 4525968., 4543160., 4560352., 4600064., 4617344.,
      4634624., 4651904., 4692056., 4709424., 4726792., 4744160., 4784752.,
      4802208., 4819664., 4837120., 6115665., 6140514., 6165363., 6190212.,
      6244274., 6269244., 6294214., 6319184., 6373851., 6398942., 6424033.,
      6449124., 6504396., 6529608., 6554820., 6580032., 6575329., 6602114.,
      6628899., 6655684., 6711682., 6738588., 6765494., 6792400., 6849003.,
      6876030., 6903057., 6930084., 6987292., 7014440., 7041588., 7068736.,
      4115741., 4133402., 4151063., 4168724., 4204466., 4222204., 4239942.,
      4257680., 4293807., 4311622., 4329437., 4347252., 4383764., 4401656.,
      4419548., 4437440., 5710952., 5734288., 5757624., 5780960., 5826816.,
      5850240., 5873664., 5897088., 5943384., 5966896., 5990408., 6013920.,
      6060656., 6084256., 6107856., 6131456., 7664209., 7697506., 7730803.,
      7764100., 7826610., 7860028., 7893446., 7926864., 7989979., 8023518.,
      8057057., 8090596., 8154316., 8187976., 8221636., 8255296., 8123873.,
      8159106., 8194339., 8229572., 8294018., 8329372., 8364726., 8400080.,
      8465131., 8500606., 8536081., 8571556., 8637212., 8672808., 8708404.,
      8744000., 5095965., 5119002., 5142039., 5165076., 5206194., 5229308.,
      5252422., 5275536., 5317039., 5340230., 5363421., 5386612., 5428500.,
      5451768., 5475036., 5498304., 4129712., 4145760., 4161808., 4177856.,
      4213760., 4229888., 4246016., 4262144., 4298448., 4314656., 4330864.,
      4347072., 4383776., 4400064., 4416352., 4432640., 5595310., 5618476.,
      5641642., 5664808., 5713788., 5737064., 5760340., 5783616., 5833146.,
      5856532., 5879918., 5903304., 5953384., 5976880., 6000376., 6023872.,
      6001294., 6026220., 6051146., 6076072., 6126812., 6151848., 6176884.,
      6201920., 6253210., 6278356., 6303502., 6328648., 6380488., 6405744.,
      6431000., 6456256., 3775702., 3792124., 3808546., 3824968., 3857532.,
      3874024., 3890516., 3907008., 3939922., 3956484., 3973046., 3989608.,
      4022872., 4039504., 4056136., 4072768., 2933712., 2946208., 2958704.,
      2971200., 2996224., 3008768., 3021312., 3033856., 3059120., 3071712.,
      3084304., 3096896., 3122400., 3135040., 3147680., 3160320., 3906114.,
      3923956., 3941798., 3959640., 3993700., 4011608., 4029516., 4047424.,
      4081814., 4099788., 4117762., 4135736., 4170456., 4188496., 4206536.,
      4224576., 4161378., 4180276., 4199174., 4218072., 4253188., 4272152.,
      4291116., 4310080., 4345526., 4364556., 4383586., 4402616., 4438392.,
      4457488., 4476584., 4495680., 2550618., 2562980., 2575342., 2587704.,
      2610020., 2622424., 2634828., 2647232., 2669758., 2682204., 2694650.,
      2707096., 2729832., 2742320., 2754808., 2767296., 3592328., 3606992.,
      3621656., 3636320., 3666176., 3680896., 3695616., 3710336., 3740472.,
      3755248., 3770024., 3784800., 3815216., 3830048., 3844880., 3859712.,
      4980197., 5001130., 5022063., 5042996., 5083930., 5104940., 5125950.,
      5146960., 5188279., 5209366., 5230453., 5251540., 5293244., 5314408.,
      5335572., 5356736., 5295285., 5317450., 5339615., 5361780., 5403946.,
      5426188., 5448430., 5470672., 5513223., 5535542., 5557861., 5580180.,
      5623116., 5645512., 5667908., 5690304., 3594913., 3609410., 3623907.,
      3638404., 3665690., 3680236., 3694782., 3709328., 3736859., 3751454.,
      3766049., 3780644., 3808420., 3823064., 3837708., 3852352., 5503080.,
      5523344., 5543608., 5563872., 5606656., 5627008., 5647360., 5667712.,
      5710936., 5731376., 5751816., 5772256., 5815920., 5836448., 5856976.,
      5877504., 7528913., 7557986., 7587059., 7616132., 7674418., 7703612.,
      7732806., 7762000., 7820891., 7850206., 7879521., 7908836., 7968332.,
      7997768., 8027204., 8056640., 7988577., 8019586., 8050595., 8081604.,
      8141826., 8172956., 8204086., 8235216., 8296043., 8327294., 8358545.,
      8389796., 8451228., 8482600., 8513972., 8545344., 5179293., 5199642.,
      5219991., 5240340., 5278770., 5299196., 5319622., 5340048., 5378863.,
      5399366., 5419869., 5440372., 5479572., 5500152., 5520732., 5541312.,
      5095528., 5117840., 5140152., 5162464., 5207296., 5229696., 5252096.,
      5274496., 5319768., 5342256., 5364744., 5387232., 5432944., 5455520.,
      5478096., 5500672., 6900945., 6932834., 6964723., 6996612., 7057714.,
      7089724., 7121734., 7153744., 7215451., 7247582., 7279713., 7311844.,
      7374156., 7406408., 7438660., 7470912., 7360609., 7394434., 7428259.,
      7462084., 7525122., 7559068., 7593014., 7626960., 7690603., 7724670.,
      7758737., 7792804., 7857052., 7891240., 7925428., 7959616., 4722333.,
      4744474., 4766615., 4788756., 4828978., 4851196., 4873414., 4895632.,
      4936239., 4958534., 4980829., 5003124., 5044116., 5066488., 5088860.,
      5111232., 4787120., 4805216., 4823312., 4841408., 4879360., 4897536.,
      4915712., 4933888., 4972240., 4990496., 5008752., 5027008., 5065760.,
      5084096., 5102432., 5120768., 6579118., 6605100., 6631082., 6657064.,
      6708860., 6734952., 6761044., 6787136., 6839482., 6865684., 6891886.,
      6918088., 6970984., 6997296., 7023608., 7049920., 6985102., 7012844.,
      7040586., 7068328., 7121884., 7149736., 7177588., 7205440., 7259546.,
      7287508., 7315470., 7343432., 7398088., 7426160., 7454232., 7482304.,
      4594646., 4612860., 4631074., 4649288., 4683644., 4701928., 4720212.,
      4738496., 4773202., 4791556., 4809910., 4828264., 4863320., 4881744.,
      4900168., 4918592., 2407376., 2417824., 2428272., 2438720., 2461696.,
      2472192., 2482688., 2493184., 2516400., 2526944., 2537488., 2548032.,
      2571488., 2582080., 2592672., 2603264., 3225410., 3240436., 3255462.,
      3270488., 3301732., 3316824., 3331916., 3347008., 3378582., 3393740.,
      3408898., 3424056., 3455960., 3471184., 3486408., 3501632., 3480674.,
      3496756., 3512838., 3528920., 3561220., 3577368., 3593516., 3609664.,
      3642294., 3658508., 3674722., 3690936., 3723896., 3740176., 3756456.,
      3772736., 2133082., 2143652., 2154222., 2164792., 2185316., 2195928.,
      2206540., 2217152., 2237886., 2248540., 2259194., 2269848., 2290792.,
      2301488., 2312184., 2322880., 3665032., 3678672., 3692312., 3705952.,
      3734784., 3748480., 3762176., 3775872., 3804984., 3818736., 3832488.,
      3846240., 3875632., 3889440., 3903248., 3917056., 4941925., 4961450.,
      4980975., 5000500., 5040026., 5059628., 5079230., 5098832., 5138743.,
      5158422., 5178101., 5197780., 5238076., 5257832., 5277588., 5297344.,
      5257013., 5277770., 5298527., 5319284., 5360042., 5380876., 5401710.,
      5422544., 5463687., 5484598., 5505509., 5526420., 5567948., 5588936.,
      5609924., 5630912., 3307297., 3320898., 3334499., 3348100., 3374490.,
      3388140., 3401790., 3415440., 3442075., 3455774., 3469473., 3483172.,
      3510052., 3523800., 3537548., 3551296., 5710952., 5734288., 5757624.,
      5780960., 5826816., 5850240., 5873664., 5897088., 5943384., 5966896.,
      5990408., 6013920., 6060656., 6084256., 6107856., 6131456., 7664209.,
      7697506., 7730803., 7764100., 7826610., 7860028., 7893446., 7926864.,
      7989979., 8023518., 8057057., 8090596., 8154316., 8187976., 8221636.,
      8255296., 8123873., 8159106., 8194339., 8229572., 8294018., 8329372.,
      8364726., 8400080., 8465131., 8500606., 8536081., 8571556., 8637212.,
      8672808., 8708404., 8744000., 5095965., 5119002., 5142039., 5165076.,
      5206194., 5229308., 5252422., 5275536., 5317039., 5340230., 5363421.,
      5386612., 5428500., 5451768., 5475036., 5498304., 4508776., 4525968.,
      4543160., 4560352., 4600064., 4617344., 4634624., 4651904., 4692056.,
      4709424., 4726792., 4744160., 4784752., 4802208., 4819664., 4837120.,
      6115665., 6140514., 6165363., 6190212., 6244274., 6269244., 6294214.,
      6319184., 6373851., 6398942., 6424033., 6449124., 6504396., 6529608.,
      6554820., 6580032., 6575329., 6602114., 6628899., 6655684., 6711682.,
      6738588., 6765494., 6792400., 6849003., 6876030., 6903057., 6930084.,
      6987292., 7014440., 7041588., 7068736., 4115741., 4133402., 4151063.,
      4168724., 4204466., 4222204., 4239942., 4257680., 4293807., 4311622.,
      4329437., 4347252., 4383764., 4401656., 4419548., 4437440., 4658096.,
      4678240., 4698384., 4718528., 4758528., 4778752., 4798976., 4819200.,
      4859600., 4879904., 4900208., 4920512., 4961312., 4981696., 5002080.,
      5022464., 6284974., 6313772., 6342570., 6371368., 6425980., 6454888.,
      6483796., 6512704., 6567866., 6596884., 6625902., 6654920., 6710632.,
      6739760., 6768888., 6798016., 6690958., 6721516., 6752074., 6782632.,
      6839004., 6869672., 6900340., 6931008., 6987930., 7018708., 7049486.,
      7080264., 7137736., 7168624., 7199512., 7230400., 4266710., 4286716.,
      4306722., 4326728., 4362876., 4382952., 4403028., 4423104., 4459602.,
      4479748., 4499894., 4520040., 4556888., 4577104., 4597320., 4617536.,
      2405328., 2413728., 2422128., 2430528., 2451456., 2459904., 2468352.,
      2476800., 2497968., 2506464., 2514960., 2523456., 2544864., 2553408.,
      2561952., 2570496., 3363906., 3376116., 3388326., 3400536., 3428964.,
      3441240., 3453516., 3465792., 3494550., 3506892., 3519234., 3531576.,
      3560664., 3573072., 3585480., 3597888., 3619170., 3632436., 3645702.,
      3658968., 3688452., 3701784., 3715116., 3728448., 3758262., 3771660.,
      3785058., 3798456., 3828600., 3842064., 3855528., 3868992., 2403674.,
      2412452., 2421230., 2430008., 2448740., 2457560., 2466380., 2475200.,
      2494142., 2503004., 2511866., 2520728., 2539880., 2548784., 2557688.,
      2566592.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x16x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6000749., 6025114., 6049479., 6073844., 6127422., 6151908., 6176394.,
      6200880., 6255063., 6279670., 6304277., 6328884., 6383672., 6408400.,
      6433128., 6457856., 6460413., 6486714., 6513015., 6539316., 6594830.,
      6621252., 6647674., 6674096., 6730215., 6756758., 6783301., 6809844.,
      6866568., 6893232., 6919896., 6946560., 7549293., 7582106., 7614919.,
      7647732., 7709758., 7742692., 7775626., 7808560., 7871191., 7904246.,
      7937301., 7970356., 8033592., 8066768., 8099944., 8133120., 8008957.,
      8043706., 8078455., 8113204., 8177166., 8212036., 8246906., 8281776.,
      8346343., 8381334., 8416325., 8451316., 8516488., 8551600., 8586712.,
      8621824., 7413997., 7442586., 7471175., 7499764., 7557566., 7586276.,
      7614986., 7643696., 7702103., 7730934., 7759765., 7788596., 7847608.,
      7876560., 7905512., 7934464., 7873661., 7904186., 7934711., 7965236.,
      8024974., 8055620., 8086266., 8116912., 8177255., 8208022., 8238789.,
      8269556., 8330504., 8361392., 8392280., 8423168., 6786029., 6817434.,
      6848839., 6880244., 6940862., 6972388., 7003914., 7035440., 7096663.,
      7128310., 7159957., 7191604., 7253432., 7285200., 7316968., 7348736.,
      7245693., 7279034., 7312375., 7345716., 7408270., 7441732., 7475194.,
      7508656., 7571815., 7605398., 7638981., 7672564., 7736328., 7770032.,
      7803736., 7837440., 7549293., 7582106., 7614919., 7647732., 7709758.,
      7742692., 7775626., 7808560., 7871191., 7904246., 7937301., 7970356.,
      8033592., 8066768., 8099944., 8133120., 8008957., 8043706., 8078455.,
      8113204., 8177166., 8212036., 8246906., 8281776., 8346343., 8381334.,
      8416325., 8451316., 8516488., 8551600., 8586712., 8621824., 6000749.,
      6025114., 6049479., 6073844., 6127422., 6151908., 6176394., 6200880.,
      6255063., 6279670., 6304277., 6328884., 6383672., 6408400., 6433128.,
      6457856., 6460413., 6486714., 6513015., 6539316., 6594830., 6621252.,
      6647674., 6674096., 6730215., 6756758., 6783301., 6809844., 6866568.,
      6893232., 6919896., 6946560.};
  const std::array<int, 4> in_shape = {{3, 18, 16, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280574.,  445214.,  470778.,  445830.,  268366.,  608762.,  949366.,
      978890.,  907500.,  538208.,  958034.,  1480798., 1510322., 1386660.,
      816200.,  1036350., 1591040., 1615460., 1475925., 862975.,  419538.,
      629112.,  637956.,  578655.,  329469.,  1630034., 2515898., 2541462.,
      2316930., 1363810., 2180486., 3340810., 3370334., 3063720., 1789172.,
      2529758., 3872242., 3901766., 3542880., 2067164., 2340450., 3569060.,
      3593480., 3257925., 1893295., 902622.,  1345476., 1354320., 1220175.,
      691053.,  2979494., 4586582., 4612146., 4188030., 2459254., 3752210.,
      5732254., 5761778., 5219940., 3040136., 4101482., 6263686., 6293210.,
      5699100., 3318128., 3644550., 5547080., 5571500., 5039925., 2923615.,
      1385706., 2061840., 2070684., 1861695., 1052637.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      949366.,  978890.,  1480798., 1510322., 3340810., 3370334.,
      3872242., 3901766., 5732254., 5761778., 6263686., 6293210.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      558306.,   561148.,   885808.,   890428.,   936628.,   941556.,
      886935.,   891660.,   533813.,   536732.,   1210286.,  1217524.,
      1887116.,  1898732.,  1945680.,  1957780.,  1803615.,  1815000.,
      1069453.,  1076416.,  1903286.,  1916068.,  2941268.,  2961596.,
      2999832.,  3020644.,  2754015.,  2773320.,  1620685.,  1632400.,
      2056670.,  2072700.,  3156670.,  3182080.,  3205070.,  3230920.,
      2928000.,  2951850.,  1711520.,  1725950.,  827946.,   839076.,
      1240602.,  1258224.,  1258026.,  1275912.,  1140840.,  1157310.,
      648984.,   658938.,   3241350.,  3260068.,  5002228.,  5031796.,
      5053048.,  5082924.,  4606455.,  4633860.,  2711093.,  2727620.,
      4328786.,  4360972.,  6630800.,  6681620.,  6689364.,  6740668.,
      6080415.,  6127440.,  3549997.,  3578344.,  5021786.,  5059516.,
      7684952.,  7744484.,  7743516.,  7803532.,  7030815.,  7085760.,
      4101229.,  4134328.,  4642190.,  4680900.,  7077070.,  7138120.,
      7125470.,  7186960.,  6459600.,  6515850.,  3752720.,  3786590.,
      1780506.,  1805244.,  2651946.,  2690952.,  2669370.,  2708640.,
      2404440.,  2440350.,  1360488.,  1382106.,  5924394.,  5958988.,
      9118648.,  9173164.,  9169468.,  9224292.,  8325975.,  8376060.,
      4888373.,  4918508.,  7447286.,  7504420.,  11374484., 11464508.,
      11433048., 11523556., 10357215., 10439880., 6030541.,  6080272.,
      8140286.,  8202964.,  12428636., 12527372., 12487200., 12586420.,
      11307615., 11398200., 6581773.,  6636256.,  7227710.,  7289100.,
      10997470., 11094160., 11045870., 11143000., 9991200.,  10079850.,
      5793920.,  5847230.,  2733066.,  2771412.,  4063290.,  4123680.,
      4080714.,  4141368.,  3668040.,  3723390.,  2071992.,  2105274.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1887116.,  1898732.,  1945680.,  1957780.,  2941268.,  2961596.,
      2999832.,  3020644.,  6630800.,  6681620.,  6689364.,  6740668.,
      7684952.,  7744484.,  7743516.,  7803532.,  11374484., 11464508.,
      11433048., 11523556., 12428636., 12527372., 12487200., 12586420.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1113770.,  1116612.,  1119454.,  1122296.,  1766996.,  1771616.,
      1776236.,  1780856.,  1868328.,  1873256.,  1878184.,  1883112.,
      1769145.,  1773870.,  1778595.,  1783320.,  1064707.,  1067626.,
      1070545.,  1073464.,  2413334.,  2420572.,  2427810.,  2435048.,
      3762616.,  3774232.,  3785848.,  3797464.,  3879260.,  3891360.,
      3903460.,  3915560.,  3595845.,  3607230.,  3618615.,  3630000.,
      2131943.,  2138906.,  2145869.,  2152832.,  3793790.,  3806572.,
      3819354.,  3832136.,  5862208.,  5882536.,  5902864.,  5923192.,
      5978852.,  5999664.,  6020476.,  6041288.,  5488725.,  5508030.,
      5527335.,  5546640.,  3229655.,  3241370.,  3253085.,  3264800.,
      4097310.,  4113340.,  4129370.,  4145400.,  6287930.,  6313340.,
      6338750.,  6364160.,  6384290.,  6410140.,  6435990.,  6461840.,
      5832150.,  5856000.,  5879850.,  5903700.,  3408610.,  3423040.,
      3437470.,  3451900.,  1644762.,  1655892.,  1667022.,  1678152.,
      2463582.,  2481204.,  2498826.,  2516448.,  2498166.,  2516052.,
      2533938.,  2551824.,  2265210.,  2281680.,  2298150.,  2314620.,
      1288014.,  1297968.,  1307922.,  1317876.,  6463982.,  6482700.,
      6501418.,  6520136.,  9974888.,  10004456., 10034024., 10063592.,
      10076220., 10106096., 10135972., 10165848., 9185505.,  9212910.,
      9240315.,  9267720.,  5405659.,  5422186.,  5438713.,  5455240.,
      8625386.,  8657572.,  8689758.,  8721944.,  12478108., 12527392.,
      12576676., 12625960., 11646528., 11694248., 11741968., 11789688.,
      9763725.,  9805630.,  9847535.,  9889440.,  5686175.,  5711450.,
      5736725.,  5762000.,  4228434.,  4251828.,  4275222.,  4298616.,
      5949476.,  5984944.,  6020412.,  6055880.,  5478344.,  5512248.,
      5546152.,  5580056.,  4509085.,  4538430.,  4567775.,  4597120.,
      2593679.,  2611418.,  2629157.,  2646896.,  1894886.,  1908508.,
      1922130.,  1935752.,  2665250.,  2685340.,  2705430.,  2725520.,
      2534282.,  2552764.,  2571246.,  2589728.,  2172390.,  2187680.,
      2202970.,  2218260.,  1253842.,  1263136.,  1272430.,  1281724.,
      547218.,   550452.,   553686.,   556920.,   838134.,   843348.,
      848562.,   853776.,   872718.,   878196.,   883674.,   889152.,
      810090.,   815280.,   820470.,   825660.,   469086.,   472272.,
      475458.,   478644.,   3359538.,  3369044.,  3378550.,  3388056.,
      5212284.,  5227376.,  5242468.,  5257560.,  5313616.,  5329016.,
      5344416.,  5359816.,  4882185.,  4896430.,  4910675.,  4924920.,
      2886835.,  2895466.,  2904097.,  2912728.,  5020862.,  5038572.,
      5056282.,  5073992.,  7728512.,  7756584.,  7784656.,  7812728.,
      7845156.,  7873712.,  7902268.,  7930824.,  7171285.,  7197630.,
      7223975.,  7250320.,  4205399.,  4221338.,  4237277.,  4253216.,
      6401318.,  6424572.,  6447826.,  6471080.,  9828104.,  9864888.,
      9901672.,  9938456.,  9944748.,  9982016.,  10019284., 10056552.,
      9064165.,  9098430.,  9132695.,  9166960.,  5303111.,  5323802.,
      5344493.,  5365184.,  6258350.,  6283900.,  6309450.,  6335000.,
      9564170.,  9604540.,  9644910.,  9685280.,  9660530.,  9701340.,
      9742150.,  9782960.,  8783350.,  8820800.,  8858250.,  8895700.,
      5114050.,  5136640.,  5159230.,  5181820.,  2438730.,  2455572.,
      2472414.,  2489256.,  3639438.,  3666036.,  3692634.,  3719232.,
      3674022.,  3700884.,  3727746.,  3754608.,  3317850.,  3342480.,
      3367110.,  3391740.,  1880430.,  1895280.,  1910130.,  1924980.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3762616.,  3774232.,  3785848.,  3797464.,  3879260.,  3891360.,
      3903460.,  3915560.,  5862208.,  5882536.,  5902864.,  5923192.,
      5978852.,  5999664.,  6020476.,  6041288.,  12478108., 12527392.,
      12576676., 12625960., 11646528., 11694248., 11741968., 11789688.,
      5949476.,  5984944.,  6020412.,  6055880.,  5478344.,  5512248.,
      5546152.,  5580056.,  7728512.,  7756584.,  7784656.,  7812728.,
      7845156.,  7873712.,  7902268.,  7930824.,  9828104.,  9864888.,
      9901672.,  9938456.,  9944748.,  9982016.,  10019284., 10056552.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1108331.,  1122296.,  1758911.,  1780856.,  1860551.,  1883112.,
      1762390.,  1783320.,  1060906.,  1073464.,  2410947.,  2435048.,
      3759591.,  3797464.,  3876719.,  3915560.,  3594030.,  3630000.,
      2131250.,  2152832.,  3796947.,  3832136.,  5867895.,  5923192.,
      5985023.,  6041288.,  5494830.,  5546640.,  3233714.,  3264800.,
      4105360.,  4145400.,  6301240.,  6364160.,  6398040.,  6461840.,
      5845100.,  5903700.,  3416740.,  3451900.,  1652952.,  1678152.,
      2476848.,  2516448.,  2511696.,  2551824.,  2277780.,  2314620.,
      1295772.,  1317876.,  6474419.,  6520136.,  9991751.,  10063592.,
      10093391., 10165848., 9201430.,  9267720.,  5415466.,  5455240.,
      8647947.,  8721944.,  12512751., 12625960., 11679607., 11789688.,
      9792430.,  9889440.,  5703794.,  5762000.,  4242203.,  4298616.,
      5970303.,  6055880.,  5497607.,  5580056.,  4525230.,  4597120.,
      2603762.,  2646896.,  1900528.,  1935752.,  2673240.,  2725520.,
      2540664.,  2589728.,  2176780.,  2218260.,  1256836.,  1281724.,
      547512.,   556920.,   838992.,   853776.,   873840.,   889152.,
      811380.,   825660.,   470076.,   478644.,   3360763.,  3388056.,
      5214671.,  5257560.,  5316311.,  5359816.,  4884950.,  4924920.,
      2888746.,  2912728.,  5028947.,  5073992.,  7741943.,  7812728.,
      7859071.,  7930824.,  7184430.,  7250320.,  4213682.,  4253216.,
      6414947.,  6471080.,  9850247.,  9938456.,  9967375.,  10056552.,
      9085230.,  9166960.,  5316146.,  5365184.,  6275920.,  6335000.,
      9592440.,  9685280.,  9689240.,  9782960.,  8809900.,  8895700.,
      5130340.,  5181820.,  2452632.,  2489256.,  3661680.,  3719232.,
      3696528.,  3754608.,  3338580.,  3391740.,  1893084.,  1924980.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3759591., 3797464., 3876719.,  3915560.,  5867895.,  5923192.,
      5985023., 6041288., 12512751., 12625960., 11679607., 11789688.,
      5970303., 6055880., 5497607.,  5580056.,  7741943.,  7812728.,
      7859071., 7930824., 9850247.,  9938456.,  9967375.,  10056552.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 1024.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2211027.,  2216662.,  2238908.,  2244592.,  3508659.,  3517822.,
      3552472.,  3561712.,  3711323.,  3721102.,  3756368.,  3766224.,
      3515400.,  3524780.,  3557190.,  3566640.,  2116016.,  2121812.,
      2141090.,  2146928.,  4807495.,  4821894.,  4855620.,  4870096.,
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  7165400.,  7188060.,  7237230.,  7260000.,
      4248640.,  4262500.,  4291738.,  4305664.,  6835735.,  6859686.,
      6902964.,  6926992.,  10014359., 10051310., 10117664., 10154736.,
      9332191.,  9368062.,  9433336.,  9469328.,  8601080.,  8634460.,
      8694350.,  8727840.,  5058592.,  5078884.,  5114554.,  5134912.,
      3619882.,  3639584.,  3675316.,  3695088.,  5199450.,  5229680.,
      5284220.,  5314560.,  4837162.,  4866224.,  4919596.,  4948768.,
      4495080.,  4522200.,  4571220.,  4598440.,  2614472.,  2630984.,
      2660156.,  2676728.,  887526.,   897456.,   913308.,   923280.,
      1170678.,  1185376.,  1208852.,  1223616.,  1045286.,  1058464.,
      1080420.,  1093664.,  979640.,   992040.,   1012300.,  1024760.,
      544152.,   551736.,   563748.,   571368.,   4456795.,  4469094.,
      4498004.,  4510352.,  6953947.,  6973582.,  7018704.,  7038416.,
      7156611.,  7176862.,  7222600.,  7242928.,  6628440.,  6647340.,
      6689270.,  6708240.,  3938144.,  3949652.,  3974642.,  3986192.,
      7415023.,  7439894.,  7484092.,  7509040.,  10729295., 10767326.,
      10834760., 10872912., 10014359., 10051310., 10117664., 10154736.,
      8390760.,  8423260.,  8482270.,  8514880.,  4936624.,  4956388.,
      4991530.,  5011360.,  4398527.,  4420150.,  4461100.,  4482800.,
      6300255.,  6333182.,  6395512.,  6428560.,  5945767.,  5977614.,
      6038864.,  6070832.,  5029000.,  5056860.,  5111230.,  5139200.,
      2941840.,  2958820.,  2991178.,  3008224.,  2988986.,  3005408.,
      3037860.,  3054352.,  4400170.,  4424880.,  4473900.,  4498720.,
      4365562.,  4389104.,  4436956.,  4460608.,  3903240.,  3923480.,
      3965620.,  3985960.,  2292392.,  2304776.,  2329820.,  2342264.,
      1088598.,  1095024.,  1107372.,  1113840.,  1667622.,  1677984.,
      1697124.,  1707552.,  1736790.,  1747680.,  1767348.,  1778304.,
      1612440.,  1622760.,  1640940.,  1651320.,  933816.,   940152.,
      950916.,   957288.,   6702563.,  6721526.,  6757100.,  6776112.,
      10399235., 10429342., 10484936., 10515120., 9869227.,  9898414.,
      9953088.,  9982352.,  8306856.,  8332204.,  8380582.,  8406000.,
      4374800.,  4388948.,  4416578.,  4430768.,  4245143.,  4266150.,
      4306484.,  4327568.,  6529303.,  6562798.,  6625696.,  6659312.,
      6300255.,  6333182.,  6395512.,  6428560.,  5373688.,  5402716.,
      5458254.,  5487392.,  2819872.,  2836324.,  2868154.,  2884672.,
      3751783.,  3769542.,  3806628.,  3824464.,  5794855.,  5823246.,
      5881040.,  5909552.,  5836143.,  5863966.,  5921192.,  5949136.,
      5255960.,  5280348.,  5331246.,  5355744.,  2987776.,  3001444.,
      3030490.,  3044224.,  4365130.,  4380320.,  4411540.,  4426800.,
      6770170.,  6794480.,  6843100.,  6867520.,  6962890.,  6988080.,
      7037580.,  7062880.,  6434600.,  6458200.,  6503700.,  6527400.,
      3795080.,  3809480.,  3836540.,  3851000.,  1882566.,  1894704.,
      1912764.,  1924944.,  2843478.,  2862816.,  2890932.,  2910336.,
      2912646.,  2932512.,  2961156.,  2981088.,  2665080.,  2683560.,
      2709900.,  2728440.,  1526232.,  1537464.,  1553124.,  1564392.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7496071.,  7519182.,  7571696.,  7594928.,  7729359.,  7753438.,
      7806920.,  7831120.,  10014359., 10051310., 10117664., 10154736.,
      9332191.,  9368062.,  9433336.,  9469328.,  10729295., 10767326.,
      10834760., 10872912., 10014359., 10051310., 10117664., 10154736.,
      6300255.,  6333182.,  6395512.,  6428560.,  5945767.,  5977614.,
      6038864.,  6070832.,  6529303.,  6562798.,  6625696.,  6659312.,
      6300255.,  6333182.,  6395512.,  6428560.,  5794855.,  5823246.,
      5881040.,  5909552.,  5836143.,  5863966.,  5921192.,  5949136.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1661347., 1666982., 1672617., 1678252., 1698116., 1703800., 1709484.,
      1715168., 2586011., 2595174., 2604337., 2613500., 2644376., 2653616.,
      2662856., 2672096., 2757251., 2767030., 2776809., 2786588., 2818080.,
      2827936., 2837792., 2847648., 2633068., 2642448., 2651828., 2661208.,
      2690466., 2699916., 2709366., 2718816., 1553596., 1559392., 1565188.,
      1570984., 1588342., 1594180., 1600018., 1605856., 4117583., 4131982.,
      4146381., 4160780., 4194812., 4209288., 4223764., 4238240., 6344391.,
      6367502., 6390613., 6413724., 6466336., 6489568., 6512800., 6536032.,
      6576527., 6600606., 6624685., 6648764., 6702344., 6726544., 6750744.,
      6774944., 6159660., 6182320., 6204980., 6227640., 6277098., 6299868.,
      6322638., 6345408., 3598940., 3612800., 3626660., 3640520., 3669710.,
      3683636., 3697562., 3711488., 6223007., 6246958., 6270909., 6294860.,
      6338444., 6362472., 6386500., 6410528., 8999639., 9036590., 9073541.,
      9110492., 9176944., 9214016., 9251088., 9288160., 8451487., 8487358.,
      8523229., 8559100., 8624472., 8660464., 8696456., 8732448., 7881612.,
      7914992., 7948372., 7981752., 8041930., 8075420., 8108910., 8142400.,
      4573436., 4593728., 4614020., 4634312., 4669934., 4690292., 4710650.,
      4731008., 4920158., 4939860., 4959562., 4979264., 5015596., 5035368.,
      5055140., 5074912., 7536286., 7566516., 7596746., 7626976., 7682164.,
      7712504., 7742844., 7773184., 7673038., 7702100., 7731162., 7760224.,
      7814244., 7843416., 7872588., 7901760., 7230944., 7258064., 7285184.,
      7312304., 7362132., 7389352., 7416572., 7443792., 4278544., 4295056.,
      4311568., 4328080., 4357564., 4374136., 4390708., 4407280., 1650434.,
      1660364., 1670294., 1680224., 1700932., 1710904., 1720876., 1730848.,
      2203778., 2218476., 2233174., 2247872., 2279036., 2293800., 2308564.,
      2323328., 1946322., 1959500., 1972678., 1985856., 2015500., 2028744.,
      2041988., 2055232., 1877760., 1890160., 1902560., 1914960., 1942508.,
      1954968., 1967428., 1979888., 1080720., 1088304., 1095888., 1103472.,
      1119876., 1127496., 1135116., 1142736., 3569835., 3582134., 3594433.,
      3606732., 3633260., 3645608., 3657956., 3670304., 5497091., 5516726.,
      5536361., 5555996., 5597344., 5617056., 5636768., 5656480., 5668331.,
      5688582., 5708833., 5729084., 5771048., 5791376., 5811704., 5832032.,
      5298396., 5317296., 5336196., 5355096., 5393874., 5412844., 5431814.,
      5450784., 3103180., 3114688., 3126196., 3137704., 3160774., 3172324.,
      3183874., 3195424., 6745783., 6770654., 6795525., 6820396., 6864900.,
      6889848., 6914796., 6939744., 9613327., 9651358., 9689389., 9727420.,
      9794952., 9833104., 9871256., 9909408., 8999639., 9036590., 9073541.,
      9110492., 9176944., 9214016., 9251088., 9288160., 7670748., 7703248.,
      7735748., 7768248., 7827546., 7860156., 7892766., 7925376., 4452908.,
      4472672., 4492436., 4512200., 4547294., 4567124., 4586954., 4606784.,
      5328135., 5349758., 5371381., 5393004., 5434260., 5455960., 5477660.,
      5499360., 8092191., 8125118., 8158045., 8190972., 8253400., 8286448.,
      8319496., 8352544., 8199399., 8231246., 8263093., 8294940., 8356288.,
      8388256., 8420224., 8452192., 7677500., 7705360., 7733220., 7761080.,
      7815738., 7843708., 7871678., 7899648., 4545740., 4562720., 4579700.,
      4596680., 4628990., 4646036., 4663082., 4680128., 3145550., 3161972.,
      3178394., 3194816., 3227868., 3244360., 3260852., 3277344., 4313038.,
      4337748., 4362458., 4387168., 4436836., 4461656., 4486476., 4511296.,
      4056574., 4080116., 4103658., 4127200., 4175700., 4199352., 4223004.,
      4246656., 3461376., 3481616., 3501856., 3522096., 3565044., 3585384.,
      3605724., 3626064., 1967344., 1979728., 1992112., 2004496., 2029852.,
      2042296., 2054740., 2067184., 1916818., 1923244., 1929670., 1936096.,
      1953300., 1959768., 1966236., 1972704., 3062738., 3073100., 3083462.,
      3093824., 3120652., 3131080., 3141508., 3151936., 3192354., 3203244.,
      3214134., 3225024., 3252380., 3263336., 3274292., 3285248., 3075808.,
      3086128., 3096448., 3106768., 3132236., 3142616., 3152996., 3163376.,
      1861296., 1867632., 1873968., 1880304., 1895460., 1901832., 1908204.,
      1914576., 5478323., 5497286., 5516249., 5535212., 5568404., 5587416.,
      5606428., 5625440., 8408171., 8438278., 8468385., 8498492., 8550312.,
      8580496., 8610680., 8640864., 7902035., 7931222., 7960409., 7989596.,
      8040496., 8069760., 8099024., 8128288., 6670412., 6695760., 6721108.,
      6746456., 6791682., 6817100., 6842518., 6867936., 3457756., 3471904.,
      3486052., 3500200., 3525910., 3540100., 3554290., 3568480., 5173535.,
      5194542., 5215549., 5236556., 5277196., 5298280., 5319364., 5340448.,
      7996759., 8030254., 8063749., 8097244., 8160240., 8193856., 8227472.,
      8261088., 8092191., 8125118., 8158045., 8190972., 8253400., 8286448.,
      8319496., 8352544., 7526028., 7555056., 7584084., 7613112., 7668938.,
      7698076., 7727214., 7756352., 4425212., 4441664., 4458116., 4474568.,
      4506350., 4522868., 4539386., 4555904., 3821423., 3839182., 3856941.,
      3874700., 3912092., 3929928., 3947764., 3965600., 5738343., 5766734.,
      5795125., 5823516., 5881408., 5909920., 5938432., 5966944., 5588015.,
      5615838., 5643661., 5671484., 5728808., 5756752., 5784696., 5812640.,
      4845804., 4870192., 4894580., 4918968., 4970154., 4994652., 5019150.,
      5043648., 2551964., 2565632., 2579300., 2592968., 2621966., 2635700.,
      2649434., 2663168., 3810110., 3825300., 3840490., 3855680., 3887500.,
      3902760., 3918020., 3933280., 5850366., 5874676., 5898986., 5923296.,
      5972564., 5996984., 6021404., 6045824., 6046510., 6071700., 6096890.,
      6122080., 6172228., 6197528., 6222828., 6248128., 5665824., 5689424.,
      5713024., 5736624., 5782932., 5806632., 5830332., 5854032., 3299536.,
      3313936., 3328336., 3342736., 3370108., 3384568., 3399028., 3413488.,
      3359778., 3371916., 3384054., 3396192., 3419108., 3431288., 3443468.,
      3455648., 5266210., 5285548., 5304886., 5324224., 5360028., 5379432.,
      5398836., 5418240., 5395826., 5415692., 5435558., 5455424., 5491756.,
      5511688., 5531620., 5551552., 5103296., 5121776., 5140256., 5158736.,
      5192364., 5210904., 5229444., 5247984., 3041232., 3052464., 3063696.,
      3074928., 3094980., 3106248., 3117516., 3128784.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6344391., 6367502., 6390613., 6413724., 6466336., 6489568., 6512800.,
      6536032., 6576527., 6600606., 6624685., 6648764., 6702344., 6726544.,
      6750744., 6774944., 8999639., 9036590., 9073541., 9110492., 9176944.,
      9214016., 9251088., 9288160., 8451487., 8487358., 8523229., 8559100.,
      8624472., 8660464., 8696456., 8732448., 9613327., 9651358., 9689389.,
      9727420., 9794952., 9833104., 9871256., 9909408., 8999639., 9036590.,
      9073541., 9110492., 9176944., 9214016., 9251088., 9288160., 8092191.,
      8125118., 8158045., 8190972., 8253400., 8286448., 8319496., 8352544.,
      8199399., 8231246., 8263093., 8294940., 8356288., 8388256., 8420224.,
      8452192., 7996759., 8030254., 8063749., 8097244., 8160240., 8193856.,
      8227472., 8261088., 8092191., 8125118., 8158045., 8190972., 8253400.,
      8286448., 8319496., 8352544., 5738343., 5766734., 5795125., 5823516.,
      5881408., 5909920., 5938432., 5966944., 5588015., 5615838., 5643661.,
      5671484., 5728808., 5756752., 5784696., 5812640.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4405541., 4433324., 4461205., 4489184., 6991985., 7035644., 7079457.,
      7123424., 7397313., 7442204., 7487249., 7532448., 7007910., 7049560.,
      7091350., 7133280., 4218634., 4243624., 4268698., 4293856., 4153257.,
      4187916., 4222729., 4257696., 6382885., 6436764., 6490885., 6545248.,
      6530997., 6585788., 6640821., 6696096., 6255870., 6307000., 6358350.,
      6409920., 3751154., 3781832., 3812642., 3843584., 5507913., 5548876.,
      5589993., 5631264., 7986501., 8049116., 8111973., 8175072., 7399381.,
      7460860., 7522581., 7584544., 7033150., 7090360., 7147790., 7205440.,
      4188338., 4222664., 4257122., 4291712., 3647042., 3678784., 3710666.,
      3742688., 5393050., 5441760., 5490690., 5539840., 5223482., 5271904.,
      5320546., 5369408., 5005580., 5050800., 5096220., 5141840., 2986132.,
      3013264., 3040516., 3067888., 1176318., 1192800., 1209366., 1226016.,
      1653798., 1678528., 1703390., 1728384., 1597574., 1621312., 1645182.,
      1669184., 1531700., 1554000., 1576420., 1598960., 881196.,  894576.,
      908028.,  921552.,  4148789., 4178636., 4208581., 4238624., 5963969.,
      6009116., 6054417., 6099872., 5707793., 5752124., 5796609., 5841248.,
      5185350., 5225560., 5265910., 5306400., 3132010., 3156136., 3180346.,
      3204640., 6267641., 6310956., 6354425., 6398048., 8769205., 8833980.,
      8898997., 8964256., 7986501., 8049116., 8111973., 8175072., 6612510.,
      6667960., 6723630., 6779520., 3944402., 3977672., 4011074., 4044608.,
      4738713., 4776044., 4813529., 4851168., 7001813., 7058940., 7116309.,
      7173920., 6880613., 6937628., 6994885., 7052384., 6068830., 6120120.,
      6171630., 6223360., 3638162., 3668936., 3699842., 3730880., 5177186.,
      5215168., 5253290., 5291552., 7646266., 7703904., 7761762., 7819840.,
      6929882., 6985184., 7040706., 7096448., 5648716., 5696560., 5744604.,
      5792848., 3119188., 3147280., 3175492., 3203824., 2171358., 2190048.,
      2208822., 2227680., 3192966., 3221824., 3250814., 3279936., 2817254.,
      2845120., 2873118., 2901248., 2221812., 2246096., 2270500., 2295024.,
      1153644., 1167600., 1181628., 1195728., 4933957., 4963308., 4992757.,
      5022304., 7802641., 7848764., 7895041., 7941472., 7475297., 7521116.,
      7567089., 7613216., 6305766., 6346584., 6387542., 6428640., 3261898.,
      3285160., 3308506., 3331936., 4431945., 4468044., 4504297., 4540704.,
      6997573., 7054300., 7111269., 7168480., 7001813., 7058940., 7116309.,
      7173920., 6203198., 6254776., 6306574., 6358592., 3394226., 3423944.,
      3453794., 3483776., 5018601., 5058956., 5099465., 5140128., 7865957.,
      7929372., 7993029., 8056928., 7916789., 7980092., 8043637., 8107424.,
      6646654., 6702264., 6758094., 6814144., 3530354., 3561672., 3593122.,
      3624704., 3567746., 3599680., 3631754., 3663968., 5608922., 5659104.,
      5709506., 5760128., 5860730., 5912160., 5963810., 6015680., 5185932.,
      5232304., 5278876., 5325648., 2906132., 2933136., 2960260., 2987504.,
      1135806., 1151584., 1167446., 1183392., 1735910., 1760704., 1785630.,
      1810688., 1830726., 1856064., 1881534., 1907136., 1625780., 1647952.,
      1670244., 1692656., 899756.,  912240.,  924796.,  937424.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6382885., 6436764., 6490885., 6545248., 6530997., 6585788., 6640821.,
      6696096., 7986501., 8049116., 8111973., 8175072., 7399381., 7460860.,
      7522581., 7584544., 8769205., 8833980., 8898997., 8964256., 7986501.,
      8049116., 8111973., 8175072., 7001813., 7058940., 7116309., 7173920.,
      6880613., 6937628., 6994885., 7052384., 6997573., 7054300., 7111269.,
      7168480., 7001813., 7058940., 7116309., 7173920., 7865957., 7929372.,
      7993029., 8056928., 7916789., 7980092., 8043637., 8107424.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3308661., 3319882., 3345234., 3356504., 3382003., 3393322., 3418968.,
      3430336., 5150617., 5168866., 5208674., 5227000., 5267039., 5285442.,
      5325712., 5344192., 5493097., 5512578., 5553618., 5573176., 5614447.,
      5634082., 5675584., 5695296., 5246538., 5265228., 5303656., 5322416.,
      5361054., 5379884., 5418732., 5437632., 3095798., 3107348., 3130376.,
      3141968., 3165122., 3176756., 3200036., 3211712., 4159777., 4175186.,
      4210074., 4225560., 4260679., 4276242., 4311592., 4327232., 6531125.,
      6555722., 6609578., 6634296., 6688515., 6713354., 6767936., 6792896.,
      6883781., 6909290., 6964058., 6989688., 7044819., 7070570., 7126064.,
      7151936., 6701922., 6726652., 6777960., 6802800., 6854438., 6879388.,
      6931356., 6956416., 4024798., 4040164., 4070728., 4086160., 4116922.,
      4132420., 4163380., 4178944., 5076929., 5098642., 5139834., 5161624.,
      5203047., 5224914., 5266568., 5288512., 7091797., 7125130., 7187722.,
      7221176., 7284131., 7317706., 7381024., 7414720., 6500325., 6532522.,
      6593978., 6626296., 6688115., 6720554., 6782736., 6815296., 6235170.,
      6265980., 6323368., 6354288., 6412006., 6443036., 6501084., 6532224.,
      3617566., 3636580., 3670792., 3689872., 3724282., 3743428., 3778036.,
      3797248., 4266718., 4282500., 4314772., 4330624., 4363106., 4379028.,
      4411720., 4427712., 6693238., 6717748., 6766996., 6791616., 6841194.,
      6865924., 6915832., 6940672., 7026134., 7050356., 7099316., 7123648.,
      7172938., 7197380., 7247000., 7271552., 6806684., 6830104., 6876032.,
      6899552., 6945780., 6969400., 7015928., 7039648., 4102244., 4116776.,
      4144160., 4158752., 4186316., 4200968., 4228712., 4243424., 2113682.,
      2124284., 2145580., 2156224., 2177646., 2188332., 2209880., 2220608.,
      3046842., 3062860., 3095212., 3111296., 3143846., 3159996., 3192744.,
      3208960., 2919002., 2934028., 2965388., 2980480., 3012038., 3027196.,
      3058952., 3074176., 2911172., 2925672., 2955200., 2969760., 2999468.,
      3014088., 3043976., 3058656., 1753404., 1762392., 1780128., 1789152.,
      1806996., 1816056., 1834008., 1843104., 3407493., 3420778., 3448194.,
      3461528., 3489091., 3502474., 3530184., 3543616., 5116521., 5136258.,
      5177554., 5197368., 5238895., 5258786., 5300544., 5320512., 5186617.,
      5205538., 5246018., 5265016., 5305727., 5324802., 5365744., 5384896.,
      4986154., 5003404., 5040392., 5057712., 5094910., 5112300., 5149708.,
      5167168., 3036950., 3047636., 3069800., 3080528., 3102818., 3113588.,
      3136004., 3146816., 6110705., 6134770., 6178314., 6202456., 6246231.,
      6270450., 6314456., 6338752., 8073413., 8108906., 8173658., 8209272.,
      8274387., 8310122., 8375600., 8411456., 7091797., 7125130., 7187722.,
      7221176., 7284131., 7317706., 7381024., 7414720., 5813442., 5842492.,
      5898120., 5927280., 5983238., 6012508., 6068796., 6098176., 3376510.,
      3394468., 3427624., 3445648., 3479002., 3497092., 3530644., 3548800.,
      4942993., 4961074., 4998634., 5016792., 5054583., 5072818., 5110840.,
      5129152., 7675621., 7703466., 7760570., 7788536., 7846003., 7874090.,
      7931920., 7960128., 8014965., 8042698., 8099690., 8127544., 8184899.,
      8212874., 8270592., 8298688., 7695746., 7720636., 7772104., 7797104.,
      7848902., 7874012., 7926140., 7951360., 4634302., 4649764., 4680424.,
      4695952., 4726810., 4742404., 4773460., 4789120., 4715710., 4737732.,
      4776244., 4798336., 4837058., 4859220., 4898152., 4920384., 6619606.,
      6653044., 6711220., 6744768., 6803274., 6836932., 6895768., 6929536.,
      5860918., 5892020., 5947860., 5979072., 6035242., 6066564., 6123064.,
      6154496., 4739804., 4765848., 4814400., 4840544., 4889396., 4915640.,
      4964792., 4991136., 2597924., 2613416., 2641760., 2657312., 2685836.,
      2701448., 2730152., 2745824., 3823026., 3835836., 3859340., 3872192.,
      3895822., 3908716., 3932472., 3945408., 6104666., 6124812., 6161292.,
      6181504., 6218182., 6238460., 6275336., 6295680., 5599994., 5619148.,
      5654636., 5673856., 5709542., 5728828., 5764712., 5784064., 4412292.,
      4428776., 4460288., 4476832., 4508524., 4525128., 4557000., 4573664.,
      2297724., 2307288., 2325600., 2335200., 2353620., 2363256., 2381784.,
      2391456., 3757717., 3770506., 3797426., 3810264., 3837331., 3850218.,
      3877432., 3890368., 5835577., 5856290., 5898562., 5919352., 5961855.,
      5982722., 6025456., 6046400., 5500681., 5521090., 5563058., 5583544.,
      5625743., 5646306., 5688736., 5709376., 4580362., 4598220., 4635816.,
      4653744., 4691550., 4709548., 4747564., 4765632., 2265398., 2275220.,
      2296520., 2306384., 2327810., 2337716., 2359268., 2369216., 4633793.,
      4650642., 4686970., 4703896., 4740455., 4757458., 4794248., 4811328.,
      7348053., 7375498., 7432202., 7459768., 7516835., 7544522., 7601952.,
      7629760., 7675621., 7703466., 7760570., 7788536., 7846003., 7874090.,
      7931920., 7960128., 7333410., 7358588., 7410344., 7435632., 7487718.,
      7513116., 7565532., 7591040., 4393246., 4407652., 4437256., 4451728.,
      4481530., 4496068., 4526068., 4540672., 4541281., 4562386., 4602970.,
      4624152., 4664967., 4686226., 4727272., 4748608., 6964597., 6998730.,
      7062122., 7096376., 7160131., 7194506., 7258624., 7293120., 6861573.,
      6895594., 6958874., 6993016., 7056659., 7090922., 7154928., 7189312.,
      5676770., 5705980., 5761768., 5791088., 5847206., 5876636., 5933084.,
      5962624., 2861662., 2877668., 2908872., 2924944., 2956346., 2972484.,
      3004084., 3020288., 4664990., 4680964., 4713428., 4729472., 4762146.,
      4778260., 4811144., 4827328., 7418422., 7444404., 7495124., 7521216.,
      7572266., 7598468., 7649848., 7676160., 7806102., 7833332., 7885300.,
      7912640., 7964938., 7992388., 8045016., 8072576., 6756636., 6781208.,
      6828288., 6852960., 6900340., 6925112., 6972792., 6997664., 3549156.,
      3563560., 3590816., 3605280., 3632716., 3647240., 3674856., 3689440.,
      2000594., 2010492., 2031084., 2041024., 2061742., 2071724., 2092568.,
      2102592., 3178234., 3194316., 3226732., 3242880., 3275494., 3291708.,
      3324520., 3340800., 3350938., 3367564., 3400524., 3417216., 3450374.,
      3467132., 3500488., 3517312., 3083076., 3097448., 3126848., 3141280.,
      3170860., 3185352., 3215112., 3229664., 1791420., 1799512., 1816352.,
      1824480., 1841428., 1849592., 1866648., 1874848.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6531125., 6555722., 6609578., 6634296., 6688515., 6713354., 6767936.,
      6792896., 6883781., 6909290., 6964058., 6989688., 7044819., 7070570.,
      7126064., 7151936., 7091797., 7125130., 7187722., 7221176., 7284131.,
      7317706., 7381024., 7414720., 6500325., 6532522., 6593978., 6626296.,
      6688115., 6720554., 6782736., 6815296., 8073413., 8108906., 8173658.,
      8209272., 8274387., 8310122., 8375600., 8411456., 7091797., 7125130.,
      7187722., 7221176., 7284131., 7317706., 7381024., 7414720., 7675621.,
      7703466., 7760570., 7788536., 7846003., 7874090., 7931920., 7960128.,
      8014965., 8042698., 8099690., 8127544., 8184899., 8212874., 8270592.,
      8298688., 7348053., 7375498., 7432202., 7459768., 7516835., 7544522.,
      7601952., 7629760., 7675621., 7703466., 7760570., 7788536., 7846003.,
      7874090., 7931920., 7960128., 6964597., 6998730., 7062122., 7096376.,
      7160131., 7194506., 7258624., 7293120., 6861573., 6895594., 6958874.,
      6993016., 7056659., 7090922., 7154928., 7189312.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, SAME3x18x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2945813., 2957034., 2968255., 2979476., 3004062., 3015332., 3026602.,
      3037872., 3062703., 3074022., 3085341., 3096660., 3121736., 3133104.,
      3144472., 3155840., 4558313., 4576562., 4594811., 4613060., 4651310.,
      4669636., 4687962., 4706288., 4744923., 4763326., 4781729., 4800132.,
      4839152., 4857632., 4876112., 4894592., 4873401., 4892882., 4912363.,
      4931844., 4971326., 4990884., 5010442., 5030000., 5069867., 5089502.,
      5109137., 5128772., 5169024., 5188736., 5208448., 5228160., 4714898.,
      4733588., 4752278., 4770968., 4808072., 4826832., 4845592., 4864352.,
      4901806., 4920636., 4939466., 4958296., 4996100., 5015000., 5033900.,
      5052800., 2800846., 2812396., 2823946., 2835496., 2857672., 2869264.,
      2880856., 2892448., 2914834., 2926468., 2938102., 2949736., 2972332.,
      2984008., 2995684., 3007360., 3916817., 3932226., 3947635., 3963044.,
      3998390., 4013876., 4029362., 4044848., 4080579., 4096142., 4111705.,
      4127268., 4163384., 4179024., 4194664., 4210304., 5801557., 5826154.,
      5850751., 5875348., 5929158., 5953876., 5978594., 6003312., 6057727.,
      6082566., 6107405., 6132244., 6187264., 6212224., 6237184., 6262144.,
      6039013., 6064522., 6090031., 6115540., 6170262., 6195892., 6221522.,
      6247152., 6302479., 6328230., 6353981., 6379732., 6435664., 6461536.,
      6487408., 6513280., 5974058., 5998788., 6023518., 6048248., 6099912.,
      6124752., 6149592., 6174432., 6226646., 6251596., 6276546., 6301496.,
      6354260., 6379320., 6404380., 6429440., 3417014., 3432380., 3447746.,
      3463112., 3493448., 3508880., 3524312., 3539744., 3570410., 3585908.,
      3601406., 3616904., 3647900., 3663464., 3679028., 3694592., 5531825.,
      5553538., 5575251., 5596964., 5638614., 5660404., 5682194., 5703984.,
      5746019., 5767886., 5789753., 5811620., 5854040., 5875984., 5897928.,
      5919872., 7946357., 7979690., 8013023., 8046356., 8108902., 8142356.,
      8175810., 8209264., 8272415., 8305990., 8339565., 8373140., 8436896.,
      8470592., 8504288., 8537984., 7870469., 7902666., 7934863., 7967060.,
      8028470., 8060788., 8093106., 8125424., 8187439., 8219878., 8252317.,
      8284756., 8347376., 8379936., 8412496., 8445056., 7737834., 7768644.,
      7799454., 7830264., 7888008., 7918928., 7949848., 7980768., 8039062.,
      8070092., 8101122., 8132152., 8190996., 8222136., 8253276., 8284416.,
      4466678., 4485692., 4504706., 4523720., 4557704., 4576784., 4595864.,
      4614944., 4649258., 4668404., 4687550., 4706696., 4741340., 4760552.,
      4779764., 4798976., 3939350., 3955132., 3970914., 3986696., 4020028.,
      4035880., 4051732., 4067584., 4101266., 4117188., 4133110., 4149032.,
      4183064., 4199056., 4215048., 4231040., 5908270., 5932780., 5957290.,
      5981800., 6032124., 6056744., 6081364., 6105984., 6156858., 6181588.,
      6206318., 6231048., 6282472., 6307312., 6332152., 6356992., 6197518.,
      6221740., 6245962., 6270184., 6320220., 6344552., 6368884., 6393216.,
      6443802., 6468244., 6492686., 6517128., 6568264., 6592816., 6617368.,
      6641920., 6167484., 6190904., 6214324., 6237744., 6285088., 6308608.,
      6332128., 6355648., 6403492., 6427112., 6450732., 6474352., 6522696.,
      6546416., 6570136., 6593856., 3606532., 3621064., 3635596., 3650128.,
      3678016., 3692608., 3707200., 3721792., 3749980., 3764632., 3779284.,
      3793936., 3822424., 3837136., 3851848., 3866560., 2924474., 2935076.,
      2945678., 2956280., 2977988., 2988632., 2999276., 3009920., 3031838.,
      3042524., 3053210., 3063896., 3086024., 3096752., 3107480., 3118208.,
      3792098., 3808116., 3824134., 3840152., 3872388., 3888472., 3904556.,
      3920640., 3953206., 3969356., 3985506., 4001656., 4034552., 4050768.,
      4066984., 4083200., 3275266., 3290292., 3305318., 3320344., 3351588.,
      3366680., 3381772., 3396864., 3428438., 3443596., 3458754., 3473912.,
      3505816., 3521040., 3536264., 3551488., 3196132., 3210632., 3225132.,
      3239632., 3269280., 3283840., 3298400., 3312960., 3342908., 3357528.,
      3372148., 3386768., 3417016., 3431696., 3446376., 3461056., 1774428.,
      1783416., 1792404., 1801392., 1818624., 1827648., 1836672., 1845696.,
      1863108., 1872168., 1881228., 1890288., 1907880., 1916976., 1926072.,
      1935168., 3559205., 3572490., 3585775., 3599060., 3625710., 3639044.,
      3652378., 3665712., 3692607., 3705990., 3719373., 3732756., 3759896.,
      3773328., 3786760., 3800192., 4775353., 4795090., 4814827., 4834564.,
      4874302., 4894116., 4913930., 4933744., 4973867., 4993758., 5013649.,
      5033540., 5074048., 5094016., 5113984., 5133952., 4547721., 4566642.,
      4585563., 4604484., 4643406., 4662404., 4681402., 4700400., 4739707.,
      4758782., 4777857., 4796932., 4836624., 4855776., 4874928., 4894080.,
      4252914., 4270164., 4287414., 4304664., 4340328., 4357648., 4374968.,
      4392288., 4428302., 4445692., 4463082., 4480472., 4516836., 4534296.,
      4551756., 4569216., 2487406., 2498092., 2508778., 2519464., 2540776.,
      2551504., 2562232., 2572960., 2594482., 2605252., 2616022., 2626792.,
      2648524., 2659336., 2670148., 2680960., 6065121., 6089186., 6113251.,
      6137316., 6181318., 6205460., 6229602., 6253744., 6298131., 6322350.,
      6346569., 6370788., 6415560., 6439856., 6464152., 6488448., 8277221.,
      8312714., 8348207., 8383700., 8448406., 8484020., 8519634., 8555248.,
      8620559., 8656294., 8692029., 8727764., 8793680., 8829536., 8865392.,
      8901248., 7946357., 7979690., 8013023., 8046356., 8108902., 8142356.,
      8175810., 8209264., 8272415., 8305990., 8339565., 8373140., 8436896.,
      8470592., 8504288., 8537984., 7313930., 7342980., 7372030., 7401080.,
      7457064., 7486224., 7515384., 7544544., 7601078., 7630348., 7659618.,
      7688888., 7745972., 7775352., 7804732., 7834112., 4231382., 4249340.,
      4267298., 4285256., 4318184., 4336208., 4354232., 4372256., 4405514.,
      4423604., 4441694., 4459784., 4493372., 4511528., 4529684., 4547840.,
      4571265., 4589346., 4607427., 4625508., 4663526., 4681684., 4699842.,
      4718000., 4756403., 4774638., 4792873., 4811108., 4849896., 4868208.,
      4886520., 4904832., 6686469., 6714314., 6742159., 6770004., 6827062.,
      6855028., 6882994., 6910960., 6968623., 6996710., 7024797., 7052884.,
      7111152., 7139360., 7167568., 7195776., 6898325., 6926058., 6953791.,
      6981524., 7038470., 7066324., 7094178., 7122032., 7179583., 7207558.,
      7235533., 7263508., 7321664., 7349760., 7377856., 7405952., 6708170.,
      6733060., 6757950., 6782840., 6834664., 6859664., 6884664., 6909664.,
      6962038., 6987148., 7012258., 7037368., 7090292., 7115512., 7140732.,
      7165952., 3898646., 3914108., 3929570., 3945032., 3975464., 3990992.,
      4006520., 4022048., 4052810., 4068404., 4083998., 4099592., 4130684.,
      4146344., 4162004., 4177664., 5633910., 5655932., 5677954., 5699976.,
      5739548., 5761640., 5783732., 5805824., 5845746., 5867908., 5890070.,
      5912232., 5952504., 5974736., 5996968., 6019200., 7996686., 8030124.,
      8063562., 8097000., 8156252., 8189800., 8223348., 8256896., 8316698.,
      8350356., 8384014., 8417672., 8478024., 8511792., 8545560., 8579328.,
      7153390., 7184492., 7215594., 7246696., 7303612., 7334824., 7366036.,
      7397248., 7454714., 7486036., 7517358., 7548680., 7606696., 7638128.,
      7669560., 7700992., 6020604., 6046648., 6072692., 6098736., 6148704.,
      6174848., 6200992., 6227136., 6277604., 6303848., 6330092., 6356336.,
      6407304., 6433648., 6459992., 6486336., 3546052., 3561544., 3577036.,
      3592528., 3621376., 3636928., 3652480., 3668032., 3697180., 3712792.,
      3728404., 3744016., 3773464., 3789136., 3804808., 3820480., 3555674.,
      3568484., 3581294., 3594104., 3618020., 3630872., 3643724., 3656576.,
      3680702., 3693596., 3706490., 3719384., 3743720., 3756656., 3769592.,
      3782528., 5447170., 5467316., 5487462., 5507608., 5543972., 5564184.,
      5584396., 5604608., 5641302., 5661580., 5681858., 5702136., 5739160.,
      5759504., 5779848., 5800192., 4963106., 4982260., 5001414., 5020568.,
      5055940., 5075160., 5094380., 5113600., 5149302., 5168588., 5187874.,
      5207160., 5243192., 5262544., 5281896., 5301248., 3992740., 4009224.,
      4025708., 4042192., 4073824., 4090368., 4106912., 4123456., 4155388.,
      4171992., 4188596., 4205200., 4237432., 4254096., 4270760., 4287424.,
      1928604., 1938168., 1947732., 1957296., 1975104., 1984704., 1994304.,
      2003904., 2021892., 2031528., 2041164., 2050800., 2068968., 2078640.,
      2088312., 2097984., 3367221., 3380010., 3392799., 3405588., 3431742.,
      3444580., 3457418., 3470256., 3496655., 3509542., 3522429., 3535316.,
      3561960., 3574896., 3587832., 3600768., 5188489., 5209202., 5229915.,
      5250628., 5291342., 5312132., 5332922., 5353712., 5394811., 5415678.,
      5436545., 5457412., 5498896., 5519840., 5540784., 5561728., 4936793.,
      4957202., 4977611., 4998020., 5038430., 5058916., 5079402., 5099888.,
      5140683., 5161246., 5181809., 5202372., 5243552., 5264192., 5284832.,
      5305472., 4284498., 4302356., 4320214., 4338072., 4374344., 4392272.,
      4410200., 4428128., 4464750., 4482748., 4500746., 4518744., 4555716.,
      4573784., 4591852., 4609920., 2321422., 2331244., 2341066., 2350888.,
      2371336., 2381200., 2391064., 2400928., 2421586., 2431492., 2441398.,
      2451304., 2472172., 2482120., 2492068., 2502016., 4257201., 4274050.,
      4290899., 4307748., 4344534., 4361460., 4378386., 4395312., 4432483.,
      4449486., 4466489., 4483492., 4521048., 4538128., 4555208., 4572288.,
      6498677., 6526122., 6553567., 6581012., 6637670., 6665236., 6692802.,
      6720368., 6777631., 6805318., 6833005., 6860692., 6918560., 6946368.,
      6974176., 7001984., 6686469., 6714314., 6742159., 6770004., 6827062.,
      6855028., 6882994., 6910960., 6968623., 6996710., 7024797., 7052884.,
      7111152., 7139360., 7167568., 7195776., 6401002., 6426180., 6451358.,
      6476536., 6528648., 6553936., 6579224., 6604512., 6657174., 6682572.,
      6707970., 6733368., 6786580., 6812088., 6837596., 6863104., 3663350.,
      3677756., 3692162., 3706568., 3735944., 3750416., 3764888., 3779360.,
      3809066., 3823604., 3838142., 3852680., 3882716., 3897320., 3911924.,
      3926528., 5427793., 5448898., 5470003., 5491108., 5532150., 5553332.,
      5574514., 5595696., 5637123., 5658382., 5679641., 5700900., 5742712.,
      5764048., 5785384., 5806720., 8330133., 8364266., 8398399., 8432532.,
      8495878., 8530132., 8564386., 8598640., 8662591., 8696966., 8731341.,
      8765716., 8830272., 8864768., 8899264., 8933760., 8181541., 8215562.,
      8249583., 8283604., 8346838., 8380980., 8415122., 8449264., 8513103.,
      8547366., 8581629., 8615892., 8680336., 8714720., 8749104., 8783488.,
      6835626., 6864836., 6894046., 6923256., 6979400., 7008720., 7038040.,
      7067360., 7124054., 7153484., 7182914., 7212344., 7269588., 7299128.,
      7328668., 7358208., 3514934., 3530940., 3546946., 3562952., 3593928.,
      3610000., 3626072., 3642144., 3673450., 3689588., 3705726., 3721864.,
      3753500., 3769704., 3785908., 3802112., 4244182., 4260156., 4276130.,
      4292104., 4325628., 4341672., 4357716., 4373760., 4407634., 4423748.,
      4439862., 4455976., 4490200., 4506384., 4522568., 4538752., 6603502.,
      6629484., 6655466., 6681448., 6733244., 6759336., 6785428., 6811520.,
      6863866., 6890068., 6916270., 6942472., 6995368., 7021680., 7047992.,
      7074304., 7000782., 7028012., 7055242., 7082472., 7135516., 7162856.,
      7190196., 7217536., 7271130., 7298580., 7326030., 7353480., 7407624.,
      7435184., 7462744., 7490304., 6180924., 6205496., 6230068., 6254640.,
      6303136., 6327808., 6352480., 6377152., 6426148., 6450920., 6475692.,
      6500464., 6549960., 6574832., 6599704., 6624576., 3155844., 3170248.,
      3184652., 3199056., 3226816., 3241280., 3255744., 3270208., 3298268.,
      3312792., 3327316., 3341840., 3370200., 3384784., 3399368., 3413952.,
      2371322., 2381220., 2391118., 2401016., 2422020., 2431960., 2441900.,
      2451840., 2473054., 2483036., 2493018., 2503000., 2524424., 2534448.,
      2544472., 2554496., 3530530., 3546612., 3562694., 3578776., 3611076.,
      3627224., 3643372., 3659520., 3692150., 3708364., 3724578., 3740792.,
      3773752., 3790032., 3806312., 3822592., 3613250., 3629876., 3646502.,
      3663128., 3695972., 3712664., 3729356., 3746048., 3779222., 3795980.,
      3812738., 3829496., 3863000., 3879824., 3896648., 3913472., 3064932.,
      3079304., 3093676., 3108048., 3137568., 3152000., 3166432., 3180864.,
      3210684., 3225176., 3239668., 3254160., 3284280., 3298832., 3313384.,
      3327936., 1556444., 1564536., 1572628., 1580720., 1597056., 1605184.,
      1613312., 1621440., 1637956., 1646120., 1654284., 1662448., 1679144.,
      1687344., 1695544., 1703744.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}
TYPED_TEST(ForwardWindow11Stride4, VALID3x18x18x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5801557., 5826154., 5850751., 5875348., 5929158., 5953876., 5978594.,
      6003312., 6057727., 6082566., 6107405., 6132244., 6187264., 6212224.,
      6237184., 6262144., 6039013., 6064522., 6090031., 6115540., 6170262.,
      6195892., 6221522., 6247152., 6302479., 6328230., 6353981., 6379732.,
      6435664., 6461536., 6487408., 6513280., 7946357., 7979690., 8013023.,
      8046356., 8108902., 8142356., 8175810., 8209264., 8272415., 8305990.,
      8339565., 8373140., 8436896., 8470592., 8504288., 8537984., 7870469.,
      7902666., 7934863., 7967060., 8028470., 8060788., 8093106., 8125424.,
      8187439., 8219878., 8252317., 8284756., 8347376., 8379936., 8412496.,
      8445056., 8277221., 8312714., 8348207., 8383700., 8448406., 8484020.,
      8519634., 8555248., 8620559., 8656294., 8692029., 8727764., 8793680.,
      8829536., 8865392., 8901248., 7946357., 7979690., 8013023., 8046356.,
      8108902., 8142356., 8175810., 8209264., 8272415., 8305990., 8339565.,
      8373140., 8436896., 8470592., 8504288., 8537984., 6686469., 6714314.,
      6742159., 6770004., 6827062., 6855028., 6882994., 6910960., 6968623.,
      6996710., 7024797., 7052884., 7111152., 7139360., 7167568., 7195776.,
      6898325., 6926058., 6953791., 6981524., 7038470., 7066324., 7094178.,
      7122032., 7179583., 7207558., 7235533., 7263508., 7321664., 7349760.,
      7377856., 7405952., 6498677., 6526122., 6553567., 6581012., 6637670.,
      6665236., 6692802., 6720368., 6777631., 6805318., 6833005., 6860692.,
      6918560., 6946368., 6974176., 7001984., 6686469., 6714314., 6742159.,
      6770004., 6827062., 6855028., 6882994., 6910960., 6968623., 6996710.,
      7024797., 7052884., 7111152., 7139360., 7167568., 7195776., 8330133.,
      8364266., 8398399., 8432532., 8495878., 8530132., 8564386., 8598640.,
      8662591., 8696966., 8731341., 8765716., 8830272., 8864768., 8899264.,
      8933760., 8181541., 8215562., 8249583., 8283604., 8346838., 8380980.,
      8415122., 8449264., 8513103., 8547366., 8581629., 8615892., 8680336.,
      8714720., 8749104., 8783488.};
  const std::array<int, 4> in_shape = {{3, 18, 18, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 512.0;
  this->run_forward_test(exp_out, in_shape, multiplier, padding, max_input_val);
}